Browse Source

first try

David Catuhe 7 years ago
parent
commit
8ebcf81484

+ 5 - 3
src/Materials/babylon.shaderMaterial.ts

@@ -202,9 +202,6 @@
             var defines = [];
             var attribs = [];
             var fallbacks = new EffectFallbacks();
-            if (useInstances) {
-                defines.push("#define INSTANCES");
-            }
 
             for (var index = 0; index < this._options.defines.length; index++) {
                 defines.push(this._options.defines[index]);
@@ -219,6 +216,11 @@
                 defines.push("#define VERTEXCOLOR");
             }
 
+            if (useInstances) {
+                defines.push("#define INSTANCES");
+                MaterialHelper.PrepareAttributesForInstances(attribs, defines);
+            }
+
             // Bones
             if (mesh && mesh.useBones && mesh.computeBonesUsingShaders && mesh.skeleton) {
                 attribs.push(VertexBuffer.MatricesIndicesKind);

+ 0 - 4
src/Mesh/babylon.linesMesh.ts

@@ -95,10 +95,6 @@
             return false;
         }
 
-        public createInstance(name: string): InstancedMesh {
-            throw new Error("LinesMeshes do not support createInstance.");
-        }
-
         /** @hidden */
         public _bind(subMesh: SubMesh, effect: Effect, fillMode: number): LinesMesh {
             if (!this._geometry) {

+ 3 - 2
src/Shaders/color.vertex.fx

@@ -8,8 +8,9 @@ attribute vec4 color;
 #include<bonesDeclaration>
 
 // Uniforms
+
+#include<instancesDeclaration>
 uniform mat4 viewProjection;
-uniform mat4 world;
 
 // Output
 #ifdef VERTEXCOLOR
@@ -17,7 +18,7 @@ varying vec4 vColor;
 #endif
 
 void main(void) {
-    mat4 finalWorld = world;
+#include<instancesVertex>
 #include<bonesVertex>
 	gl_Position = viewProjection * finalWorld * vec4(position, 1.0);