yzwalkman

——用数绘画

导航

随笔分类 -  Algorithem & Math

Graphic Algorithem
Shadow Mapping 的原理与实践(二)
摘要:3) 定义并生成Shadow Map纹理 1 texture2D Lamp0ShadowMapColor : RENDERCOLORTARGET 2 ; 7 8 sampler2D Lamp0ShadowMapSampler = sampler_state { 9 Texture = ;10 FILTER = MIN_MAG_MIP_LINEAR;11 AddressU = Clamp;12 AddressV = Clamp;13 }; 第3行的作用是使生成的Shadaow Map纹理大小与渲染窗口自动保持一致,这样可以很方便地观察到Shad... 阅读全文

posted @ 2013-07-28 09:30 yzwalkman 阅读(1929) 评论(0) 推荐(0) 编辑

Shadow Mapping 的原理与实践(一)
摘要:早在上世纪七十年代末,Williams在他的“Casting Curved Shadows on Curved Surface”一文中提出了名为Shadow Map的阴影生成技术。之后,他人在此基础上针对相关问题做了许多改进。现在,Shadow Map仍被作为主流的阴影生成技术被广泛应用。 Z缓冲在一开始就是Shadow Map技术的实现基础。讨论Shadow Map技术的意义,不仅在于了解一种阴影生成技术,还在于可借此掌握一种很有用的技术手段。物体表面上一点,只有在与光源之间没有障碍阻隔时,它的深度值才会被保存到Z缓冲中。换个角度看,这就相当于,在物体表面上某点的深度值被保存到Z... 阅读全文

posted @ 2013-07-27 19:47 yzwalkman 阅读(8508) 评论(0) 推荐(1) 编辑

模板缓冲与阴影体
摘要:一、模板缓冲 与模板缓冲相关的操作有两种——比较操作和更新操作。1. 比较操作 Stencil Test 比较的是Reference和Stencil Buffer中的值,公式如下: (Stencil Ref \ &mask ) op (Stencil Buffer \ &mask ) // 左右顺序不可颠倒 相应的DX和OpenGL中的命令为: glStencil(cmp_fun, ref, mask) 和 device->SetRenderState(D3DRS_STENCILFUNC, cmp_fun) 其中的cmp_fun就是上式中的“op”,实际为 “〉”、“〈” 阅读全文

posted @ 2013-06-21 22:02 yzwalkman 阅读(3698) 评论(2) 推荐(1) 编辑

空间变换问题的求解方法
摘要:一、空间变换问题的求解 当用矢量来描述空间中的一点时,求解空间点变换的具体方式问题,就变成了求矩阵的问题了。对于空间中的一个刚体(Rigid-Body)或一个点来说,其空间位置的变换矩阵一般都可以由平移(Translation)矩阵和旋转(Rotation)矩阵通过变换的级联(concatenation)来得到。而平移和旋转矩阵的表达方式是现成的(实际上也是通过下面介绍的方法来推导得到的),因此在应用时,空间点的变换矩阵通过相关矩阵的连乘就可以得到,这类变换问题还是比较简单的。而对于更一般性的问题,就需要有一般性的解决方法。这里,希望通过对平面阴影的生成的讨论,能初步得到解决此类问题的一般性. 阅读全文

posted @ 2013-06-19 23:31 yzwalkman 阅读(3476) 评论(0) 推荐(0) 编辑

模拟光照中的凹凸纹理原理和应用
摘要:一、一个想法 早期的3D图形渲染,是要先计算三角形各顶点的光照,然后再在光栅化阶段根据顶点光照运算结果,对整个三角面进行插值运算,从而得到整个三角形的光照效果颜色值。这种计算方式被称之为Gouraud着色(Gouraud Shading)模式。在使用DirectX9之前(包括DirectX9)的固定管线(Fixed Pipeline)图形引擎进行渲染时,用户只需要设置好相应的转换矩阵和顶点数组,就可以得到想要的结果。但Gouraud着色在表现对象的细节时就显得无能为力了,即使引入了纹理贴图,在表现一些粗糙表面时仍束手无策。因为在光栅化时,无论是三角形内部各点对应的像素纹理UV值,还是光照结果. 阅读全文

posted @ 2013-05-29 15:21 yzwalkman 阅读(3523) 评论(1) 推荐(0) 编辑

点击右上角即可分享
微信分享提示