模型显示完全错乱了,怎么解决呐:883:
能把代码和截图传上来看看吗?只是描述没法解决呀。
— Begin quote from ____
引用第1楼songmiao于2015-01-04 17:07发表的 :
能把代码和截图传上来看看吗?只是描述没法解决呀。 http://www.cocoachina.com/bbs/job.php?action=topost&tid=279914&pid=1212839
— End quote
local size = cc.Director:getInstance():getWinSize()
local texture = cc.RenderTexture:create(size.width, size.height)
texture:retain()
texture:begin()
currentScene:visit()
texture:end()
原模型

截图后

顶起来
captureScreen已经绑了Lua。
从截图看应该是把DepthTest关闭了导致3d模型渲染不正确。
— Begin quote from ____
引用第4楼偶尔e网事于2015-01-06 11:58发表的 回 3楼(getovermvp) 的帖子 :
captureScreen已经绑了Lua。 http://www.cocoachina.com/bbs/job.php?action=topost&tid=279914&pid=1214584
— End quote
我不想截图保存,只截图,不保存,保存之后再读取出来太慢啦
— Begin quote from ____
引用第5楼songmiao于2015-01-06 17:29发表的 回 2楼(getovermvp) 的帖子 :
从截图看应该是把DepthTest关闭了导致3d模型渲染不正确。 http://www.cocoachina.com/bbs/job.php?action=topost&tid=279914&pid=1214975
— End quote
要怎么开启呢?
试了一下cc.Director:getInstance():setDepthTest(true),还是和之前一样
local texture = cc.RenderTexture:create(size.width, size.height)
创建一个有深度的rendertexture
楼主你好,我遇到了和你同样的问题,请问你这个问题解决了没有?
楼主你好,我遇到的问题是整个3D场景都截出不来,只能截出2D的布景。
我也遇到了和楼主一样的问题,研究了很久无解,一开始3d模型都渲染不出来,问题原因在于RenderTexture内部的渲染命令是在2d命令队列中,而Sprite3d的渲染命令是在3d命令中,我的解决方法是修改RenderTexture的渲染命令为3d命令,并且把_isTransparent设置成false( 防止命令被忽略),然后渲染出来的结果是视觉上看起来缺少深度测试,我用opengl api检查了3d模型渲染前的深度测试开关和深度mask,都没有发现异常,请问楼主现在解决了吗?
终于解决了,问题本质不是深度方面的问题,我试过关闭深度测试进行渲染,得到的结果是不一样的。
原因和解决方案见我在cocos2d-x论坛上发起的提问:
http://discuss.cocos2d-x.org/t/failed-to-render-sprite3d-to-rendertexture/25870
3.15 中解决了这个。
测试 RenderTextureWithSprite3DIssue16894
但是一个3d 的动画依然不能渲染到纹理~
3d动画是可以渲染到RenderTexture的;测试用例中不能动起来是因为没有吧模型add到父节点;没有update驱动不能做动画