渲染物体影的步骤.doc

渲染物体影的步骤.doc

ID:55417953

大小:104.50 KB

页数:2页

时间:2020-05-12

渲染物体影的步骤.doc_第1页
渲染物体影的步骤.doc_第2页
资源描述:

《渲染物体影的步骤.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、1.渲染物体影子的步骤:1.绘制场景(下面渲染的影子就出现在这个场景中);2.渲染物体(这个物体在灯光的作用下将出现影子);3.求出灯源相对于物体的位置,这需要把作用于物体的模型视图矩阵的逆乘以灯光在眼坐标中的位置;4.求出物体相对于灯光的边界线,对于简单的绘制可以自己找出物体的边界线,对于复杂的物体可以使用算法来找出物体的边界线;5.在模板中绘制影子:初始化模板缓存为0;开启模板,总是通过模板测试,通过模板测试和深度测试后模板缓存递增;以GL_CCW来绘制“影子体”的外表面;改变模板缓存选项,通过模板测

2、试和深度测试后模板缓存递减;以GL_CW来绘制“影子体”的内表面。这样在模板缓存中就存在了影子。以上操作开启深度测试,但禁止写深度缓存,禁止写颜色缓存。6.开启颜色缓存写功能,设置模板测试为不为0通过,绘制一个足够覆盖整个程序绘图区域的矩形。这样,在屏幕中就绘制了物体的影子。2.根据面的三个定点求解平面方程的程序:inlinevoidCalcPlane(glObjecto,sPlane*plane){sPointv[4];inti;for(i=0;i<3;i++){v[i+1].x=o.points[pl

3、ane->p[i]].x;v[i+1].y=o.points[plane->p[i]].y;v[i+1].z=o.points[plane->p[i]].z;}plane->PlaneEq.a=v[1].y*(v[2].z-v[3].z)+v[2].y*(v[3].z-v[1].z)+v[3].y*(v[1].z-v[2].z);plane->PlaneEq.b=v[1].z*(v[2].x-v[3].x)+v[2].z*(v[3].x-v[1].x)+v[3].z*(v[1].x-v[2].x);pla

4、ne->PlaneEq.c=v[1].x*(v[2].y-v[3].y)+v[2].x*(v[3].y-v[1].y)+v[3].x*(v[1].y-v[2].y);plane->PlaneEq.d=-(v[1].x*(v[2].y*v[3].z-v[3].y*v[2].z)+v[2].x*(v[3].y*v[1].z-v[1].y*v[3].z)+v[3].x*(v[1].y*v[2].z-v[2].y*v[1].z));}1.比较两个数(pli,p2i)和另外两个数(p1j,p2j)是否相同的算法:P

5、1i=((p1i+p2i)-abs(p1i-p2i))/2;P2i=((p1i+p2i)+abs(p1i-p2i))/2;P1j=((p1j+p2j)-abs(p1j-p2j))/2;P2j=((p1j+p2j)+abs(p1j-p2j))/2;if((P1i==P1j)&&(P2i==P2j))…2.ASDW控制灯源的移动。

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。