当前位置: 首页 > news >正文

郑州推广网站网站开发 在线报名

郑州推广网站,网站开发 在线报名,深圳响应式网站建设,wordpress分享视频网站在坐标系统小节中,我们渲染了一个3D箱子,并且运用了深度缓冲(Depth Buffer)来防止被阻挡的面渲染到其它面的前面。在这一节中,我们将会更加深入地讨论这些储存在深度缓冲(或z缓冲(z-buffer))中的深度值(Depth Value),以及它们是如何确定一个片段是处于其它片段后方的。 …

在坐标系统小节中,我们渲染了一个3D箱子,并且运用了深度缓冲(Depth Buffer)来防止被阻挡的面渲染到其它面的前面。在这一节中,我们将会更加深入地讨论这些储存在深度缓冲(或z缓冲(z-buffer))中的深度值(Depth Value),以及它们是如何确定一个片段是处于其它片段后方的。

深度缓冲就像颜色缓冲(Color Buffer)。在每个片段中储存了信息,并且(通常)和颜色缓冲有着一样的宽度和高度。深度缓冲是由窗口系统自动创建的,它会以16、24或32位float的形式储存它的深度值。

当深度测试(Depth Testing)被启用的时候,OpenGL会将一个片段的深度值与深度缓冲的内容进行对比。OpenGL会执行一个深度测试,如果这个测试通过了的话,深度缓冲将会更新为新的深度值。如果深度测试失败了,片段将会被丢弃。

深度缓冲是在片段着色器运行之后。屏幕空间坐标与通过OpenGL的glViewport所定义的视口密切相关且可以直接使用GLSL内建变量gl_FragCoord从片段着色器中直接访问。gl_FragCoord的x和y分量代表了片段的屏幕空间坐标。

如果要启用深度测试的话,我们需要用GL_DEPTH_TEST选项来启用它:

glEnable(GL_DEPTH_TEST);

当它启用的时候,如果一个片段通过了深度测试的话,OpenGL会在深度缓冲中储存该片段的z值;如果没有通过深度缓冲,则会丢弃该片段。如果你启用了深度缓冲,你还应该在每个渲染迭代之前使用GL_DEPTH_BUFFER_BIT来清除深度缓冲,否则你会仍在使用上一次渲染迭代中的写入的深度值:

glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);

可以想象,在某些情况下你会需要对所有片段都执行深度测试并丢弃相应的片段,但希望更新深度缓冲基本上来说,你在使用一个只读的(Read-only)深度缓冲。OpenGL允许我们禁用深度缓冲的写入,只需要设置它的深度掩码(Depth Mask)设置为GL_FALSE就可以了:

glDepthMask(GL_FALSE);

深度测试函数

OpenGL允许我们修改深度测试中使用的比较运算符。这允许我们来控制OpenGL什么时

http://www.yayakq.cn/news/418697/

相关文章:

  • 一般网站的字体是什么烟台网站建设哪家好呢
  • 网站备案查询不到专业做网站多少钱
  • 广东商城网站建设漂亮又简单的logo图片
  • 烟台市建设工程质量检测网站养殖网站源码
  • 做网站开发 用什么软件出境旅游哪个网站做的好
  • 重庆网站建设解决方案惠州排名推广
  • WordPress科技网站设计网站思路如何写
  • 移动网站程序购物网站的设计与实现
  • 整站seo优化推广资料共享的网站开发
  • 网站登录模板下载戴尔官方网站建设启示
  • 河北做it的网站网站做成软件免费
  • 个人网站做哪一种比较赚钱网站开发需求分析的内容
  • 网站运营一月多少钱seo网站排名优化
  • 做移动网站点击软件吗福彩hao123网址导航
  • 溧阳城乡建设厅网站江西做企业网站的公司
  • 有没有做英语试题的网站组织架构及营销网络
  • 北京网站建设上北京九五至尊网络app开发者
  • pk10网站开发杭州网站建设价格
  • 网站的建设的公司出名WordPress上传Excel
  • 新网站建设银行提升转账额度开源短视频sdk推荐
  • 做营销型网站的公司网站开发的源码
  • 示范校建设网站温州做网站公司有哪些
  • 家庭农场网站建设塑胶制品 东莞网站建设
  • 南京个人做网站的乐云网站建设
  • xxx网站建设规划书wordpress自定义字段分类
  • 网站备案 年审杭州房产网二手房
  • 三河市网站建设展示型网站可以做推广的吗
  • 桂阳网站定制微信营销大师
  • 站长工具ping东莞网站平台费用
  • 游戏网站建设策划方案模板wordpress浮动音乐