我在glsl顶点着色器中使用顶点位移。例如:
vertex = inVertex; // "layout in" parameter.
map_data = texture( heightMap, uv );
float displacement = u_map_scale * map_data.r;
vertex.y += displacement;
gl_Position = MVP * vertex;
在主程序代码中创建地形,如:
for( x < sizeW ..... )
{
for( y < sizeH ..... ) {
m_buffer[nIndex] = Vector3( xData, 0.0f, zData );
.....
请注意,Y(高度)参数为0.0。问题在于碰撞检测:实际上,当它返回'm_buffer [nIndex] .y'作为其高度值时,它等于0,因为高度值是在glsl中生成的。
所以问题本身: 如何从glsl获取顶点数据并将其绑定回我的缓冲区数据m_buffer?