我目前正在研究关于使用GWT插件gwt-g3d创建仓库的3D可视化的学士论文。在片段着色器中依赖于状态的渲染
我已经尽可能地相当有效地显示结构布局。由于我在着色器中保留了所有的渲染并将我的gl.draw()
调用最小化,所以渲染了200万以上的顶点。然而,我认为我使用这种技术已经走到了死胡同,因为它非常静态。我需要的是一种使我的应用程序更具动态性的方法。 因为我习惯于在Java中使用面向对象的编程,所以着色器语言很难让我头脑发热。这就是我在说的...
我想以不同的方式(不同的颜色开始)呈现多个区域(这些区域的数量在初始化时未知)的可视化。所以我用尽片段着色器内是这样的:
...
uniform vec3 alteredCoords[]; //a coordArray of positions that i want to render alternatively
...
// color each of these coords in grey
for (int i = 0; i < alteredCoords.length(); i++) {
if (position.x == alteredCoords[i].x && position.y == alteredCoords[i].y && position.z == alteredCoords[i].z) {
gl_FragColor = vec4(100.0/255.0, 100.0/255.0, 100.0/255.0, 1.0);
return;
}
}
我知道,这是行不通的,因为它是,因为数组需要一个固定的大小和有铸造的问题 - 试图忽略,就目前而言,因为这将无法正常工作,因为着色器语言不支持动态大小的数组。
我需要的是这种问题的某种解决方法。有任何想法吗?
这里是什么我的布局看起来像此刻的截图:
请注意,我已经实现了我的想法对一个区域(灰色正方形)已经 - 我需要的是一些方法以这种方式动态呈现多个区域。