cocos就是一个大坑,建议不要学这个破引擎了!!!!
我把引擎从3.7升级到3.10,他妹的,同样的代码,就两种效果:
错误图片:不透明显示文字
正确图片:
我用的是Sprite3D,材质是我自己的写的。
material hexgon
{
technique h_front
{
pass 0
{
renderState
{
cullFace=false
depthTest=true
}
shader
{
vertexShader=shaders/hexgon.vert
fragmentShader=shaders/hexgon.frag
u_lightLocation=-100,-100,-100
u_Camera=0,-30,-80
u_transparent=1.0
sampler u_pic
{
path=item02_DrugKnowledge/files_3D/main_02.png
}
}
}
}
technique h_back
{
pass 0
{
renderState
{
cullFace=false
depthTest=true
}
shader
{
vertexShader=shaders/hexgon.vert
fragmentShader=shaders/hexgon.frag
u_lightLocation=-100,-100,-100
u_Camera=0,-30,-80
u_transparent=1.0
sampler u_pic
{
path=item02_DrugKnowledge/files_3D/back.png
}
}
}
}
}
在3.7中这样就正确,在3.10就不正确。找了半天终于找到了,就是背面消隐的问题,
cullFace=false这条语句在3.10中不起作用,s->getMaterial(1)->getStateBlock()->setCullFace(false); 要通过这条语句对背面消隐设置才起作用,不知道为什么是这样!!!先解决了问题,以后慢慢研究吧,最近很忙的!!!