default of c#
    
            
摘要:【default of c#】 在泛型类和泛型方法中产生的一个问题是,在预先未知以下情况时,如何将默认值分配给参数化类型 T:T 是引用类型还是值类型。如果 T 为值类型,则它是数值还是结构。 给定参数化类型 T 的一个变量 t,只有当 T 为引用类型时,语句 t = null 才有效;只有当 T...
        
阅读全文
摘要:【3DMathKeynote】1、常用公式。 1)(A*B)^T = B^T*A^T。 2)(A*B)^-1 = B^-1*A^-1。 3)|A*B| = |A|*|B|。 4)|M^T|=|M|2、为什么矩阵的每一行可以解释为坐标系的基向量? 3、为了将原坐标系转换到新坐标系,用它乘以...
        
阅读全文
摘要:【glBuffers & glVertexPtrs】1、glBuffers使得数据可以存储在显示存中。 GLuint VBO; glGenBuffers(1, &VBO); glBindBuffer(GL_ARRAY_BUFFER, VBO); glBufferData(GL_ARRAY_B...
        
阅读全文
摘要:【贝赛尔曲线】 贝塞尔曲线(英语:Bézier curve)是电脑图形学中相当重要的参数曲线。 1、线性贝塞尔曲线。 给定点P0、P1,线性贝塞尔曲线只是一条两点之间的直线。这条线由下式给出: 且其等同于线性插值。2、二次方贝塞尔曲线二次方贝塞尔曲线的路径由给定点P0、P1、P2的函数B(t...
        
阅读全文
摘要:【C#自省】1、根据string,获取type。Type.GetType 方法,获取具有指定名称的Type,执行区分大小写的搜索。 2、根据obj,获取type。Object.GetType 方法,获取当前实例的Type。 int n1 = 12;int n2 = 82;long n3 = 12...
        
阅读全文
摘要:【继承和泛型】 在使用子类一般类型参数时,必须在子类级别重复在基类级别规定的任何约束。例如,派生约束: 基类可以定义其签名使用一般类型参数的虚拟方法。在重写它们时,子类必须在方法签名中提供相应的类型: 您可以定义一般接口、一般抽象类,甚至一般抽象方法。这些类型的行为像其他任何一般基类型...
        
阅读全文
摘要:【泛型和强制类型转换】 编译器允许您将一般类型参数显式强制转换到其他任何接口,但不能将其转换到类: 但是,您可以使用临时的 Object 变量,将一般类型参数强制转换到其他任何类型: 不用说,这样的显式强制类型转换是危险的,因为如果为取代一般类型参数而使用的类型实参不是派生自您要显式强...
        
阅读全文
摘要:【一般约束】 使用 C# 泛型,编译器会将一般代码编译为 IL,而不管客户端将使用什么样的类型实参。因此,一般代码可以尝试使用与客户端使用的特定类型实参不兼容的一般类型参数的方法、属性或成员。这是不可接受的,因为它相当于缺少类型安全。在 C# 中,您需要通知编译器客户端指定的类型必须遵守哪些约束,...
        
阅读全文
摘要:【为什么要使用泛型】 通过泛型可以定义类型安全的数据结构(类型安全),而无须使用实际的数据类型(可扩展)。这能够显著提高性能并得到更高质量的代码(高性能),因为您可以重用数据处理算法,而无须复制类型特定的代码(可重用)。在概念上,泛型类似于 C++ 模板,但是在实现和功能方面存在明显差异。 考虑...
        
阅读全文
摘要:【extern】 extern修饰符用于声明在外部实现的非托管方法。 Theexternkeyword is also used as a method modifier, declaring a method written in unmanaged code. [DllImport("av...
        
阅读全文
摘要:【字符图元】1、typeface(字样),即设计风格,如Courier等。2、font(字体),如10磅Courier斜体。3、monspace即为等宽字体,proportional为非等宽字体。4、字体有2种存储格式:位图字体(bitmap font),也要光栅字体(raster font);轮...
        
阅读全文
摘要:【OpenGL位图函数】1、OpenGL中glBitmap用于绘制一个二值阵列。 When drawn, the bitmap is positioned relative to the current raster position, and framebuffer pixels corre...
        
阅读全文
摘要:【多边形的性质】1、如果一个多边形所有内角均小于180度,则为凸(convex)多边形。凸多边形的另一定义是它的内部完全在它的任一边及其延长线的一侧。 2、给定多边形顶点,计算连续的边向量叉积,如果有些为正而另一些为负,则该多边形为凹多边形。3、多边开形的内角和为(n-2)*180。3、通过向量...
        
阅读全文
摘要:【椭圆的特征】 椭圆有2个焦点,椭圆上任意一点到2个焦点的距离是一个常量。 所以椭圆方程可以如下: 也可写成下式通过椭圆方程: 也可按照长短轴给出椭圆方程: 或者通过角度的方式给出方程: 椭圆按四象限对象,无法像圆一样八象限对称:
        
阅读全文
摘要:【中点画圆算法】 此算是一种圆的光栅化算法。定义以下函数: 通过上述函数,可以得到点(x,y)与半径为r的圆的关系: 已知点(Xk,Yk),我们需要知道(Xk+1,Yk)、(Xk+1,Yk-1)哪一个更接近圆。决策方程如下: 如果Pk小于0,那么中点位于圆内,扫描线Yk上的像...
        
阅读全文
摘要:【Bresenham画线算法】 Bresenham是一种光栅化算法。不仅可以用于画线,也可以用用画圆及其它曲线。 通过lower与upper的差,可以知道哪一个点更接近线段: 参考:《计算机图形学》3.5.3 Bresenham画线算法
        
阅读全文
摘要:【DDA算法】 Digital Differential Analyzer,DDA算法是一种线段扫描转换算法。(线段光栅化算法) DDA算法优缺点: 1、消除了直线方程中的乘法计算,而在x、y方向使用合适的增量。 2、取整操作耗时。参考:《计算机图形学》3.5.2 DDA算法
        
阅读全文
摘要:【GL_LINES】 独立的线段,下式中,p2与p3间没有连线。 【GL_LINE_STRIP】 连续的线段,下式中, p2与p3会连成线段。 【GL_LINE_LOOP】 参考:《计算机图形学》3.4 OpenGL画线函数。
        
阅读全文
摘要:【贝塞尔曲线】1、线性贝塞尔曲线 给定点P0、P1,线性贝塞尔曲线只是一条两点之间的直线。这条线由下式给出: 且其等同于线性插值。2、二次方贝塞尔曲线 二次方贝塞尔曲线的路径由给定点P0、P1、P2的函数B(t)追踪: 3、三次方贝塞尔曲线 P0、P1、P2、P3四个点在平面或在三维空...
        
阅读全文
摘要:【弱引用】 弱引用允许应用程序访问对象,同时也允许垃圾回收器收集相应的对象。如果不存在强引用,则弱引用的有限期只限于收集对象前的一个不确定的时间段。使用弱引用时,应用程序仍可对该对象进行强引用,这样做可防止该对象被收集。但始终存在这样的风险:垃圾回收器在重新建立强引用之前先处理该对象。 弱引用特...
        
阅读全文
摘要:【Lambert模型】漫反射光的强度近似地服从于Lambert定律,即漫反射光的光强仅与入射光的方向和反射点处表面法向夹角的余弦成正比。 由此可以构造出Lambert漫反射模型:Idiffuse =Id Kd cosθIdiffuse表示物体表面某点的漫反射光强Id为点光源,Kd(0<Kd<1)表示...
        
阅读全文
摘要:【ShadowVolume】 1、z-pass 算法。 z-pass 是 shadow volume 一开始的标准算法,用来确定某一个象素是否处于阴影当中。其原理是: Pass1:enable z-buffer write ,渲染整个场景,得到关于所有物体的 depth map 。注意这里的 dep
        
阅读全文
摘要:【Phong Shading】 The most serious problem with Gouraud shading occurs when specular highlights are found in the middle of a large polygon. Since these...
        
阅读全文
摘要:【求反射向量】 给定入射光线向量I和平面法向量N,求反射向量R,如下图。为了方便计算,这里假定I和N都是单位向量(模为1,编程时可先将I和N单位化)。 设入射光线向量I和反射平面的法向量N之间的夹角为theta。连接I的始端和R的末端,则有 R = 2P - I (1) 现在...
        
阅读全文
摘要:【Vertex Modifier of Surface Shader】 Surface shader compilation directivevertex:functionName 可以用于指定顶点着色器。Afunction that takesinout appdata_fullparamet...
        
阅读全文
摘要:【Camera’s Depth Texture】 In Unity a Camera can generate a depth or depth+normals texture. This is a minimalistic G-buffer texture that can be used fo...
        
阅读全文
摘要:【Writing Surface Shaders】 Writing shaders that interact with lighting is complex. There are different light types, different shadow options, differen...
        
阅读全文