- 博客(13)
- 资源 (6)
- 收藏
- 关注
转载 自动计算顶点缓冲中所有顶点的法线
问题当绘制自定义的结构时,你会发现光照不正确。这是因为你没有指定正确的法线向量,显卡要求每个顶点都有法线信息,这样它才可以决定每个三角形获得多少光照,详细信息可见第六章。为每个顶点计算法线向量看起来很复杂,因为大多数顶点被多个三角形共享。解决方案如果每个顶点只被一个三角形使用,你只需找到三角形的法线向量(换句话说,这个向量垂直于三角形)并将这个向量作为三个顶
2015-01-24 16:35:14 2274
转载 光滑着色
多边形可以使用平面着色模式或光滑着色模式填充。平面着色是指多边形所有顶点的颜色都相同,多边形内部具有同顶点(一般取第一个顶点)一样的颜色。在交界处出现马赫带效应,使得边界突出,破坏完整性。光滑着色是指多边形各个顶点的颜色不同,多边形内部各点的颜色是由3个顶点的颜色的双线性插值得到。多边形的光滑着色模式主要有Gouraud明暗处理和Phong明暗处理。更准确称为Gouraud光强
2015-01-24 11:24:18 2911
原创 材质模型
物体的材质是指物体表面对光的吸收、反射和透射的性能。由于是简单光照模型,所以只考虑材质的反射特性来建立物体的材质模型。同光源一样,材质也由环境色、漫反射色和镜面反射色等分量组成,分别说明了物体对环境光、漫反射光和镜面反射光的反射率。材质决定物体的颜色: 在进行光照计算时,材质对环境光的反射率与光源的环境光分量相结合,
2015-01-22 20:58:12 1317
原创 光照模型
计算机图形学的光照模型分为 局部、全局光照模型。局部,只考虑光源直接照射到物体表面所产生的效果,即假设物体表面上不透明且具有均匀的反射率。整体光照模型还考虑了周围环境对物体表面的影响,能模拟镜面的映像、光的折射以及相邻表面之间的颜色辉映等精确的光照效果。简单光照模型假设:光源为点光源; 入射光为r,g,b
2015-01-22 20:41:00 1437
原创 CMYK颜色模型
CMYK也成为印刷颜色模型,即用来制作印刷品的。从理论上讲,只需要CMY这三种油墨即可,但是CMY三个油墨混合的实际结果是一种“灰”黑色。且黑色油墨相对又便宜,故黑色油墨被用于代替等量的青色、品红、黄色油墨。这就是为什么四色套印工艺采用CMYK模型的理由了。CMYK的所有颜色都包含有RGB中,但CMYK的颜色数量少于RGB。即用RGB模型区制作印刷用的图像时,某些色彩也行就无法
2015-01-22 16:47:51 2933
原创 头文件重复包含
如果某个头文件被多次包含,则在VC编译器中编译,会抛出“重复定义”错误。为了避免同一个文件被重复包含多次,C++提出了2种解决方案。1、#ifndef _SOME_FILE_H #define _SOME_FILE_H …… …… #endif //在文件末端2、#pragma one ……
2015-01-20 11:39:38 402
原创 使用#define定义字面值和伪函数
#define是C语言提供的宏定义命令,能够为程序员提供一定方便,在一定程度上提高程序的执行效率。在程序中,有效范围为宏定义之后的本源文件结束,在此文件范围内有效。另外,用#undef可以终止宏定义的作用域,可灵活控制宏定义的作用范围。(1)#define定义的常量无数据类型,只是简单的字符替换,没了类型的安全检查,且有时还会产生边际效应。e.g:#define N100
2015-01-20 11:18:13 1413
原创 字符串
字符集指一个系统支持的所有抽象字符的集合。常见的字符集主要有ASCII 字符集,Unicode字符集,GB2312字符集等。ASCII 字符集 该字符集存储字符个数有限,为了消除这个缺陷,使各种语言可统一编码,双字节编码应运而生。在双字节字符集中,一个字符可有1个或2个字节组成。这就是UTF编码,即通常所说的Unicode码。windows系统底层全部采用Unicode编码,
2015-01-16 20:58:56 414
原创 如何降低函数的圈复杂度
圈复杂度就是统计一个函数有多少个分支(if,while,for等)每增加一个分支,复杂度加1。简单来说,就是相当于需要多少个测试用例才能对这个函数做到全路径覆盖。计算方法:(1)由1计算,一直往下通过程序。(2)一旦遇到以下关键字或同类的词,如if ,while,repeat,for,and ,or,CC加1。(3)switch-case语句的每一种情况加1。降低函
2015-01-16 17:19:43 9415
原创 内联函数与宏
求两个整数和的宏#define Sum(nNoA,nNoB)((nNoA)+(nNoB))宏在预处理时把宏代码展开,不需要类似函数似的保存现场和恢复现场,执行效率而言更高。这也是C语言中大量使用宏的原理。宏也有两面性,如宏不能访问对象的私有成员;容易引起二义性。内联函数是C++为了提高函数的执行效率而引进的一种特殊的函数。避免了宏的一些负面效应。隐式内联:Class
2015-01-16 10:08:41 825
原创 goto
goto 的反对声音很多,但是也不能否认goto的各种优点第一种情况:跳出多层嵌套的循环。 由于break语句只影响包围它的最内层循环,如欲从深层循环跳出只有一种方法,那就是使用goto语句。while(condition1){while(condition2){while(condition3){if(some d
2015-01-15 17:21:58 685
原创 位操作与逻辑操作符号的区别
要记住逻辑与和为与的区别:int i=1;int j=2;i&j=?i&&j=?i &j =0; 0001&&0010=0i&&j=TRUE; 还需要切记的是,逻辑与&& 和 逻辑或 || 具有短路求值特性。需注意使用。即 i&&j,如果i为false,则不计算b,该式为False
2015-01-15 16:10:03 851
CxImage 配置文件
2014-09-26
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人