表面绘制算法

上传人:ji****72 文档编号:45678795 上传时间:2018-06-18 格式:PDF 页数:28 大小:1.05MB
返回 下载 相关 举报
表面绘制算法_第1页
第1页 / 共28页
表面绘制算法_第2页
第2页 / 共28页
表面绘制算法_第3页
第3页 / 共28页
表面绘制算法_第4页
第4页 / 共28页
表面绘制算法_第5页
第5页 / 共28页
点击查看更多>>
资源描述

《表面绘制算法》由会员分享,可在线阅读,更多相关《表面绘制算法(28页珍藏版)》请在金锄头文库上搜索。

1、面绘制算法 surface-rendering method1回顾光照模型光照模型光照模型(Illumination model)又称为:光照模型(lighting model)也称为:明暗模型(shading model)建模物体表面某点处的可见颜色计算简单近似模型:phong模型(已讲)23单光源的phong模型表达式:从视点观察到物体上任一点P处的光强度I:应为环境反射光强度Ie、漫反射光强度Id以及镜面反射光强度Is的总和:n spdpaasde VRKINLKIKIIIII)()(4对于平面:可以直接计算面亮度。(明暗着色方法)。对于由曲面构成的表面可计算表面的每一点亮度,但处理时间

2、较长。通常将曲面划分为一系列的多边形网格(一般为四边 形或三边形),用一组平面多边形来逼近曲面。Wireframe5Computation of Vectorsl and v are specified by the applicationCan computer r from l and nProblem is determining nFor simple surfaces is can be determined but how we determine n differs depending on underlying representation of surfaceOpenGL l

3、eaves determination of normal to applicationException for GLU quadrics and Bezier surfaces (Chapter 11)6Plane NormalsEquation of plane: ax+by+cz+d = 0From Chapter 4 we know that plane is determined by three points p0, p2, p3or normal n and p0Normal can be obtained byn = (p2-p0) (p1-p0)7Normal to Sph

4、ereImplicit function f(x,y.z)=0Normal given by gradientSphere f(p)=p p-1n = f/x, f/y, f/zT=p8表面绘制方法表面绘制方法表面绘制表面绘制(surface-rendering method)又称作“明暗处理算法,主要指应用一个光照模型,获得所有投影的表面位置的像素颜色的过程。可将光照模型应用于每一投影位置(面点):计算量大,效果好。如:光线跟踪表面绘制算法。或者先对多边形表面上少数点使用光照模型计算,然后再用插值法计算其它面点的颜色。Gouraud着色(平滑着色)91.恒定光强的明暗处理恒定光强的明暗处理只

5、用一种颜色绘制整个多边形:即任取多边形上一点, 利用简单光照模型计算出它的颜色,该颜色即是多边 形的颜色。In openGL: glShadeModel(GL_FLAT)适合于 多面体的一个面,而不是曲面的一个近似网格的一部分 光源离多边形表面足够远 视点也离表面远10Flat ShadingMach band(马赫带效应)人类视觉系统具有 侧抑制 (lateral inhibitioin)性质,在 亮度变化的边界,在较亮一 侧看见一条更亮的线,在较 暗一侧看一条更暗的线。 没有办法能够避免。112. Gouraud明暗处理明暗处理又称为平滑着色又称为平滑着色,亮度插值明暗处理亮度插值明暗处理

6、,它通过对多边形顶点颜色进行线性插值来绘制其内部各点。In OpenGL:glShadeModel(GL_SMOOTH);12用Gouraud明暗处理的三个步骤:1. 计算每个多边形顶点处的平均单位法矢量2. 对每个顶点根据简单光照模型来计算其光强。3. 多边形表面内的各点光强,进行线性插值。131)计算顶点法矢量根据各个面的法向量,通过插值法求顶点 法向量,且是平均单位法向量43214321 nnnnnnnnnnormals near interior vertex2)对每个顶点计算光强14()() ()()eds n aapdpsn aapdpsIIII I KI KL NI KR V I

7、 KI KL NI KN H 用简单光照模型phong模型计算顶点的光强153)插值面内各点亮度1617Gouraud ShadingMach band效应还是能察 觉出来。183 Phong明暗处理明暗处理Gourand 着色获得的平滑图像,还是能察觉 Mach 带效应。而phong处理后会非常光滑。Phong明暗处理方法由明暗处理方法由Bui-Tuong Phong提出提出, 又称为法矢量插值明暗处理又称为法矢量插值明暗处理。它不是对明暗度它不是对明暗度(亮度亮度)颜色进行插值颜色进行插值,而是沿扫而是沿扫 描线对其上各点的的描线对其上各点的的法矢量进行插值法矢量进行插值,以产生中以产生中

8、 间各点的法矢量间各点的法矢量,然后对每个面点进行光照模型然后对每个面点进行光照模型 计算计算。19Phong ShadingGouraudWireframePhongFlatPhong明暗处理的三步骤明暗处理的三步骤:1. 计算每个多边形计算每个多边形顶点处的平均单位法矢量顶点处的平均单位法矢量。2. 用双线性插值方法求得多边形内部用双线性插值方法求得多边形内部(扫描扫描 线上线上)各点的法矢量各点的法矢量。3. 最后按最后按光照模型光照模型确定确定多边形内部各点的光多边形内部各点的光 强强。20211)计算每个多边形顶点处的平均单计算每个多边形顶点处的平均单 位法矢量。位法矢量。根据各个面

9、的法向量,通过插值法求顶点 法向量,且是平均单位法向量43214321 nnnnnnnnnnormals near interior vertex222)双线性插值方法求得多边形内 部(扫描线上)各点的法矢量。3)确定多边形内部各点的确定多边形内部各点的光强光强。23()() ()()eds n aapdpsn aapdpsIIII I KI KL NI KR V I KI KL NI KN H 24表面绘制-明暗处理小结恒定强度明暗处理(Flat Surface Rendering)每个面一种颜色,效率高,真实感差Gouraud明暗处理(Gouraud surface rendering)克

10、服了常数明暗法处理中物体表面亮度的不连续性,可应 用于简单的漫反射光照模型。Phong明暗处理(Phong surface rendering )法向量插值绘制normal-vector interpolation rendering在局部范围内真实地反映表面的弯曲性对镜面反射所产生的高光显示更加真实但计算量比较大因计算量大,一般以离线方式实现在最新图形卡中,光栅化模块可编程,从而允许直接对片元进行操作, 可以实时实现phong着色25Polygonal ShadingFlat Shading: use constant normal for each polygon (triangle) T

11、his means that each point on the polygon has the same shadeGouraud Shading:compute the vertex normal as the average of the normals from its neighborhood polygonsPhong Shading:compute the normal at each pixel from interpolation26Angel: Interactive Computer Graphics4E Addison-Wesley 2005Global vs Loca

12、l LightingCannot compute color or shade of each object independentlySome objects are blocked from lightLight can reflect from object to objectSome objects might be translucentGlobal vs Local Lighting全局照明阴影,反射成像和光线的 遮挡,纹理,透明等成像是光线在多个面间多 次作用后成的效果可模拟全局效果光线跟踪和辐射度方法可编程绘制可实现近似实 现一些全局光照效果,如 纹理映射,透明效果等一般离线绘

13、制,实时明暗 绘制时精度降低。局部照明只考虑反射成像每个面的明暗计算彼此 独立只能模拟有限的光照效 果,局部效果简单phong模型和明暗 计算2728Why not ray tracing?Ray tracing seems more physically based so why dont we use it to design a graphics system?Possible and is actually simple for simple objects such as polygons and quadrics with simple point sourcesIn principle, can produce global lighting effects such as shadows and multiple reflections but ray tracing is slow and not well-suited for interactive applications

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号