zoukankan      html  css  js  c++  java
  • U3D中物体的渲染顺序

    1,由SHADER中渲染队列及队列中的值决定

    2,在同一队列中,若材质相同

    2.1 对于UI,按其在场景层级中的先后顺序绘制

    2.2 对于3D不透明物体,按其离相机的距离,由近到远绘制,这样可以减少像素重绘

    2.2 对于3D透明物体,按其离相机的距离,由远到近绘制,只有这要才能正确绘制所有半透明物体,反之,有些半透明物体将看不到半透效果

     3,在同一队列中,若材质不同,绘制顺序不定,在framedebuger中,移动相机,可以看到绘制顺序不断变换。

    举例:有两个不透明队列:20001(a,b,c三个物体,使用材质1,Z值由小到大),20002(e,f,g三个物体,使用材质2,Z值由小到大),让它们沿相机Z轴排成一排

    当移动相机时,在framedebuger中查看6个物体的绘制顺序,可以看到绘制顺序不断变动如:

    <a,b,c,e,f,g> < a,b,e,c,f,g>  < e,f,a,b,c,g>

    但不管怎么样变动,同一队列中的物体总是保持顺序不变,即a总在b前,b总在c前,e总在f前,f总在g前

    一般情况下我们不需要关心相同队列物体绘制的先后顺序,但当需要处理zwrite, ztest, stenciltest时,就必须精确控制物体的绘制顺序,否则就实现不了想要的效果。如利用模板测试绘制镜子,必须先绘制镜子,将镜子区域的像素的模板值写为某个值X,然后绘制被镜子照到的物体(如果模板值为X则绘制,否则丢弃像素)。

    4,物体上挂接的脚本的执行先后完全没有什么规律。只是确定的一点是: 若a的start先于b,c的start执行,则a.update也先于b.c的update执行

    setsiblingindex(idx)设置兄弟结点先后顺序时,若idx处已有结点X,则结点X及其后的所有节点后移

  • 相关阅读:
    积水路面Wet Road Materials 2.3
    门控时钟问题
    饮料机问题
    Codeforces Round #340 (Div. 2) E. XOR and Favorite Number (莫队)
    Educational Codeforces Round 82 (Rated for Div. 2)部分题解
    Educational Codeforces Round 86 (Rated for Div. 2)部分题解
    Grakn Forces 2020部分题解
    2020 年百度之星·程序设计大赛
    POJ Nearest Common Ancestors (RMQ+树上dfs序求LCA)
    算法竞赛进阶指南 聚会 (LCA)
  • 原文地址:https://www.cnblogs.com/timeObjserver/p/9181827.html
Copyright © 2011-2022 走看看