在Scenekit中有没有可行的方法在SCNProgram着色器中使用纹理? 据我所知,没有办法从SCNProgram中访问默认的SCNMaterial纹理(我知道我可以从着色器修改器访问它们,但不幸的是,据我所知,我无法做我需要做的事情。着色器修饰符)。
管理我自己的纹理并不容易,因为绑定它们的明显位置 - 在material.handleBindingOfSymbol块中 - 对于使用材质渲染的每一个几何体都会被调用一次。在我的情况下,每帧数万次,如果场景图正确地对渲染状态进行排序,这对于只需要进行一次的事情来说似乎很疯狂。
我曾经假设有一种方法可以将纹理附加到SCNProgram或SCNMaterial,以便scengraph可以管理渲染状态,但对于我的生活,我找不到类似的东西。
我是否遗漏了某些东西,或者纹理基本上无法用于SCN程序?
答案 0 :(得分:1)
设置自定义SCNProgram后,无法访问材质纹理。 SCNProgram完全取代了SceneKit的渲染,让你可以使用原始的OpenGL | ES。所以你确实必须使用GL自己创建和绑定纹理。