drawObjects method
Implementation
void drawObjects(Scene scene, Camera camera) {
for (var object in scene.children) {
ProgramInfo programInfo = object.programInfo!;
// Tell it to use our program (pair of shaders)
// rememeber !!! for each model - object3d in the scene, some times is better
// to use a seperate programe.
gl.useProgram(programInfo.program);
// Setup all the needed attributes.
gl.bindVertexArray(object.vao);
// Set the camera uniforms.
Flutter3D.setUniforms(programInfo, camera.uniforms);
// Set the object uniforms
Flutter3D.setUniforms(programInfo, object.uniforms);
// Set the object material related uniforms
Flutter3D.setUniforms(programInfo, object.material.uniforms);
if (object.geometry is EdgedBoxGeometry) {
Flutter3D.drawBufferInfo(gl, object.geometry.bufferInfo, gl.LINES);
} else {
// calls gl.drawArrays or gl.drawElements
Flutter3D.drawBufferInfo(gl, object.geometry.bufferInfo);
}
}
}