actionscript-3 – Away3D Stage3DProxy绘图顺序
我有一个Flash应用程序,其中两个3d视图共享相同的Stage3DProxy,因为我需要一个在任何时候覆盖/绘制在另一个上.但是,它们似乎共享相同的3d空间/ z缓冲区(?).
我的更新功能目前看起来像这样: private function onEnterFrame(event : Event) : void { stage3DProxy.clear(); away3DView.render(); away3DView2.render(); stage3DProxy.present(); } 显然,这本身还不够 – 我在某处读到了可以使用setDepthTest方法,例如: stage3DProxy.context3D.setDepthTest(false,Context3DCompareMode.NEVER); …在每个视图的render()调用之间将它设置为不同的模式,但我对它的工作原理并不清楚,文档在实际上非常薄.我玩过,在渲染调用之间设置不同的东西,但没有快乐. 设置Stage3DProxy的唯一例子是使用一个Away3D视图和两个starling – 这不是我想要的.我在他们的论坛上阅读了一条评论,其中说你必须在大约’其他地方’指定某些setDepthTest设置,但是没有详细说明它们的位置或者它们需要设置的位置,这听起来像是一个非常黑客的应该是非常基本的东西! 如果有人可以提供帮助我会非常感激,或者如果有人知道另一种方法来做这件事 – 强迫一个特定的绘图顺序似乎应该是一个相对微不足道的任务但我发现没有任何有用的事情,我想坚持Away3D因为它是一个很好的API和功能集,但这是我当前项目的真正障碍! 提前致谢 解决方法
经过多年的拖网搜索,答案非常简单:
view3D.layeredView = true; 这将导致有问题的视图呈现在“顶部”.共享代理上的后续渲染仍将覆盖此,因此您需要考虑渲染顺序,但这正是我所需要的. 我不敢相信它很难找到,所有Stage3DProxy指南都谈论与Starling共享,而不是另一个View3D ……希望这能阻止其他人撕掉他们的头发! (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |