Browse Source

Support for generating UV coordinates for 3D textures if they are not manually created.

git-svn-id: https://jmonkeyengine.googlecode.com/svn/trunk@8231 75d07b2b-3a1a-0410-a2c5-0572b91ccdca
Kae..pl 14 years ago
parent
commit
b8618eba26

+ 9 - 10
engine/src/blender/com/jme3/scene/plugins/blender/textures/UVCoordinatesGenerator.java

@@ -108,18 +108,17 @@ public class UVCoordinatesGenerator {
 				inputData = BufferUtils.getFloatArray(mesh.getFloatBuffer(VertexBuffer.Type.Position));
 				inputData = BufferUtils.getFloatArray(mesh.getFloatBuffer(VertexBuffer.Type.Position));
 				break;
 				break;
 			case TEXCO_UV:
 			case TEXCO_UV:
-				if (textureDimension == 2) {
-					FloatBuffer uvCoordinatesBuffer = BufferUtils.createFloatBuffer(mesh.getVertexCount() << 1);
-					Vector2f[] data = new Vector2f[] { new Vector2f(0, 1), new Vector2f(0, 0), new Vector2f(1, 0) };
-					for (int i = 0; i < mesh.getVertexCount(); ++i) {
-						Vector2f uv = data[i % 3];
-						uvCoordinatesBuffer.put(uv.x);
-						uvCoordinatesBuffer.put(uv.y);
+				FloatBuffer uvCoordinatesBuffer = BufferUtils.createFloatBuffer(mesh.getVertexCount() * textureDimension);
+				Vector2f[] data = new Vector2f[] { new Vector2f(0, 1), new Vector2f(0, 0), new Vector2f(1, 0) };
+				for (int i = 0; i < mesh.getVertexCount(); ++i) {
+					Vector2f uv = data[i % 3];
+					uvCoordinatesBuffer.put(uv.x);
+					uvCoordinatesBuffer.put(uv.y);
+					if(textureDimension == 3) {
+						uvCoordinatesBuffer.put(0);
 					}
 					}
-					result.setupData(Usage.Static, textureDimension, Format.Float, uvCoordinatesBuffer);
-				} else {
-
 				}
 				}
+				result.setupData(Usage.Static, textureDimension, Format.Float, uvCoordinatesBuffer);
 				break;
 				break;
 			case TEXCO_NORM:
 			case TEXCO_NORM:
 				inputData = BufferUtils.getFloatArray(mesh.getFloatBuffer(VertexBuffer.Type.Normal));
 				inputData = BufferUtils.getFloatArray(mesh.getFloatBuffer(VertexBuffer.Type.Normal));