问题描述: 我在使用 Babylon.js 开发 3D 图形时遇到问题。我尝试使用
setVerticesBuffer
方法直接设置网格顶点位置,但网格不显示。但是,当我使用 VertexData
对象应用相同的位置数据时,网格显示正确。我想了解这种行为的潜在原因并寻求解决方案。
尝试的解决方案:
setVerticesBuffer
来表示颜色和位置,但似乎位置数据仍然没有正确应用。updatable
的 VertexBuffer
参数设置为 true
,以便将来可能进行更新。相关代码:
// Shader and material initialization code
Effect.ShadersStore[`coarsePathVertexShader`] = `
precision highp float;
attribute vec3 position;
attribute vec4 color;
uniform mat4 worldViewProjection;
uniform float size;
varying vec4 vColor;
void main() {
gl_Position = worldViewProjection * vec4(position, 1.0);
gl_PointSize = size;
vColor = color;
}`;
// Method 1:
// const positionsBuffer = new BABYLON.VertexBuffer(engine, points, "position", true, false, 3, false);
// mesh.setVerticesBuffer(positionsBuffer);
//Method 2 :
const vertexData = new BABYLON.VertexData();
vertexData.positions = points;
vertexData.applyToMesh(mesh, false);
游乐场示例: 请参考我的Babylon.js Playground示例来查看问题的具体表现:[Playground链接](Playground)
请求帮助: 我正在寻求经验丰富的开发人员的指导或建议,以帮助解决此问题。如果您遇到类似的问题或知道潜在的解决方案,非常欢迎您的反馈。