【Stage3D学习笔记续】真正的3D世界(三):纹理效果

混合模式:

代码

示例是《Stage3D指南》中的直接弄出来的,可以通过点击键盘上的Q、W、E这3个按键,更换混合模式、模型和纹理,可以直观的查看不同混合模式的效果,住:下方的地形使用"context3D.setBlendFactors(Context3DBlendFactor.ONE, Context3DBlendFactor.ZERO);"正常混合模式渲染,上方中心的模型使用特定的混合模式渲染。

 

深度测试(Z-Buffer):

使用Z-Buffer的话,GPU会把每个像素都设置到一个叫做深度缓冲的地方,最终会绘制到屏幕的像素是距离屏幕最近的像素,而不使用Z-Buffer的话,GPU会使用画家算法进行绘制,即后绘制的图像会覆盖先绘制的图像。

下面我们修改一下上面的例子来测试一下:

代码

首先我们之前的例子是先绘制地形再绘制上面的模型的,这样的话我们是否使用深度测试其实是看不出区别的,因为模型就是在地形的上方,所以我们需要将两个绘制顺序进行颠倒。

点击“R”键切换是否使用深度测试。如果不使用深度测试,那么模型是先绘制,地形是后绘制,所以模型位于地形的后方,使用深度测试则会判断像素距离屏幕的距离,最终呈现距离最近的像素,所以模型又回到上方了。

另外我们使用深度测试时,会发现混合模式好像出现了问题,全是黑色的方块!其实混合模式没有出现问题,而是我们的模型先绘制,所以混合颜色时缓冲中并没有颜色可以进行混合(如果先绘制地形,则会和地形的颜色混合),所以就出现了这个问题。

 

背面剔除:

用于提升渲染速度,开启后,看不见的一面不会进行绘制。

1 context3D.setCulling(Context3DTriangleFace.NNONE);


增加性能:

  • 不透明的纹理绘制得更快;
  • 尽量避免重复绘制;
  • 尽量避免状态改变;
  • 使用更加简单的着色器;
  • 绘制更少的网格;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值