图形渲染中的背面消隐

在3d图形学中,一个三角形图元有两个表面

在dx中,认为在摄像机坐标系中 以你的观察方向三角形环绕为顺时针的面为正面,另一面为背面,而在openGL中正好相反。(顶点的方向又称为环绕)

dx是左手坐标系而openGL是右手坐标系。

dx:

D3DRS_CULLMODE,绘制状态

用法:Device->SetRenderState(D3DRS_CULLMODE,X);

其中X可取的值
1、D3DCULL_NONE //完全禁用背面消隐
2、D3DCULL_CW //只对顺时针绕序的三角形进行消隐
3、D3DCULL_CCW //只对逆时针绕序的三角形进行消隐(在消隐中为默认值)

dx的参考: http://blog.csdn.net/yaoxinchao/article/details/7982099

opengl:

void glFrontFace(GLenum mode);

作用是控制多边形的正面是如何决定的。在默认情况下,是GL_CCW(逆时针)。

GL_CCW 表示窗口坐标上投影多边形的顶点顺序为逆时针方向的表面为正面。

GL_CW 表示顶点顺序为顺时针方向的表面为正面。

glEnable(GL_CULL_FACE) 开启剔除操作效果

glDisable(GL_CULL_FACE) 关闭剔除操作效果

glCullFace:指定剔除操作的多边形面

剔除操作

glCullFace()参数包括GL_FRONT和GL_BACK。表示禁用多边形正面或者背面上的光照、阴影和颜色计算及操作,消除不必要的渲染计算。

综上,在进行背面消隐时,假设我们设定只绘制正面的三角形图元,在你的试点看,如果这个三角形图元被认定为正面,则被绘制出来

如果被认定为背面则被剔除(这个三角形不会被渲染,是剔除三角形图元而不是剔除这个三角形的背面的表面),所以要保证一个闭合模型的顶点环绕一致

如果不一致并且采用了背面消隐,很可能会看到模型的一部分不见了。

图形渲染中的背面消隐

时间: 2024-12-19 13:10:53

图形渲染中的背面消隐的相关文章

怎样在ZBrush® 4R7中设置背面遮罩

ZBrush® 4R7中的背面遮罩是如何来设置的?当我们在进行Zbrush雕刻创作的时候,经常会不经意的雕刻到背面的物体,那么,如何防止背面的物体不被雕刻到,这就需要设置下背景遮罩了. 在工具架上“Brush”按钮:单击“Auto Masking” 将“BackfaceMas”激活选择,“BackfaceMas”按钮激活以后就可以有效的避免雕刻时误操作到背面物体了.其中“Backface Auto Mask Intersity”则表示背面遮罩强度,数值范围为-100到100,当值为100是才可以

在ZBrush4R7中设置背面遮罩

ZBrush® 4R7中的背面遮罩是如何来设置的?当我们在进行Zbrush雕刻创作的时候,经常会不经意的雕刻到背面的物体,那么,如何防止背面的物体不被雕刻到,这就需要设置下背景遮罩了. 在工具架上“Brush”按钮:单击“Auto Masking” 将“BackfaceMas”激活选择,“BackfaceMas”按钮激活以后就可以有效的避免雕刻时误操作到背面物体了.其中“Backface Auto Mask Intersity”则表示背面遮罩强度,数值范围为-100到100,当值为100是才可以

《逐梦旅程 WINDOWS游戏编程之从零开始》笔记6——Direct3D中的顶点缓存和索引缓存

第12章 Direct3D绘制基础 1. 顶点缓存 计算机所描绘的3D图形是通过多边形网格来构成的,网网格勾勒出轮廓,然后在网格轮廓的表面上贴上相应的图片,这样就构成了一个3D模型.三角形网格是构建物体模型的基本单元,而一个三角形有3个顶点,为了能够使用大量三角形组成三角形网格来描述物体,需要首先定义号三角形的顶点(Vertex),3个顶点确定一个三角形,顶点除了定义每个顶点的坐标位置外,还还含有颜色等其他属性. 在Direct3D中,顶点的具体表现形式是顶点缓存,顶点缓存保存了顶点数据的内存空

Linux中bash文档翻译

BASH(1)通用命令手册BASH(1) 名称? bash - GNU Bourne-Again SHell 概要? bash [选项] [文件] 版权? Bash是自由软件基金会版权所有(C)1989-2011. 描述? Bash是一种兼容sh的命令语言解释器,它执行从标准输入或文件读取的命令.Bash还包含了有用的功能? Korn和C shell(ksh和csh). Bash旨在成为IEEE POSIX规范(IEEE标准1003.1)的Shell和Utilities部分的一致实现.Bash可

Direct3D基础概念和模型整理

转自:http://blog.csdn.net/blues1021/article/details/41099705 参考整理自文章: http://zh.wikipedia.org/zh/Direct3D http://blog.csdn.net/weili_2007/article/details/1907066 http://msdn.microsoft.com/en-us/library/windows/desktop/bb219679(v=vs.85).aspx#Direct3D_Sy

DirectX学习笔记(二)

一.顶点缓存与索引缓存 3D中,各种图形一般都是由多边形来逼近的,一般采用三角形来逼近.例如像下图展示的那样: 这个蓝色的球体是由大量的三角形来组成,当然三角形的数量越多球体就会显得更加的逼真.需要指出的是,任何物体都可以用三角形网格来逼近表示,三角形网格是构建物体模型的基本单元.而一个三角形是由三个顶点组成,所以顶点就可以说是组成物体模型的基本单位.这里的顶点并不像我平常所说的点一样,它不仅仅只保存了位置信息,还有可以保存颜色,法线,纹理坐标等信息. 1.顶点缓存 在D3D中,顶点的具体表现形

《逐梦旅程 WINDOWS游戏编程之从零开始》笔记7——四大变换

第13章 世界变换,取景变换,投影变换,视口变换 在Direct3D中,如果为进行任何空间坐标变换而直接绘图的话,图形将始终处于应用程序窗口的中心位置,默认这个位置就成为世界坐标系的原点(0,0,0).而且我们也不能改变观察图形的视角方向.默认情况下的观察方向是世界坐标系的z轴正向方向. 世界变换运算是为了能在世界空间中的指定位置来绘制图形 取景变换运算是为了以不同的视角观察图形 投影变换为了将相对较远的图形投影到同一个平面上并体现出"近大远小"的真实视觉效果 视口变换是为了控制显示图

开源一个简单的c++软光栅渲染器

本文由zhangbaochong原创,转载请注明出处http://www.cnblogs.com/zhangbaochong/p/5751111.html 由于开学就大四面临找工作了,为了在简历上放点项目,最近又把上学期练手写的一个c++软光栅渲染demo拿出来重新改了改,稍微优化了一下,顺便增加了光照.虽然写的比较简单,但还是拿出来分享一下,希望能起个抛砖引玉的作用吧,也欢迎指点批评O(∩_∩)O~ (ps :项目代码只有3000行左右,性能方面也比较渣,高性能的光栅渲染可以看空明大大的SAL

DirectX3D开发之绘制流水线(一)

欢迎来到EasyLiu的博客 ! 参考:directxtutorial.com   DirectX.9.0.3D游戏开发编程基础 In the last lesson you built a simple, flat triangle lit with simple diffuse lighting. This triangle was not 3D, it was flat. If you managed to change it, you found it was a 2D triangle