2012-02-05 33 views
5

Tôi đang tạo một trò chơi nhỏ bằng cách sử dụng Three.js và mọi thứ diễn ra tốt đẹp ngoài các vấn đề về bóng râm có hình khối. Tôi về cơ bản đang xây dựng một cấp độ trò chơi bằng cách chỉ thả khối hình kết cấu xuống để tạo thành một mê cung. Vấn đề là khi các hình khối nằm cạnh nhau, mỗi khối được tô bóng theo cách nó trông như thể nó là một thực thể riêng biệt và không phải là một phần của bức tường lớn hơn.Làm cách nào để thay đổi cách tô bóng trên hình khối trong Three.js?

Dưới đây là một ví dụ, hãy chú ý những ảo ảnh của một bức tường đơn bị mất:

enter image description here

Có một kỹ thuật đánh bóng khác nhau nên tôi sử dụng hoặc là có một tài sản tốt đẹp để được thiết lập nơi nào đó để thay đổi điều này hành vi che nắng?

Đây là mô hình khối lập phương của tôi:

{ 

    "metadata" : 
    { 
     "formatVersion" : 3, 
     "generatedBy" : "Blender 2.60 Exporter", 
     "vertices"  : 8, 
     "faces"   : 6, 
     "normals"  : 8, 
     "colors"  : 0, 
     "uvs"   : 4, 
     "materials"  : 1, 
     "morphTargets" : 0 
    }, 

    "scale" : 1.000000, 
    "materials": [{ 
     "DbgColor" : 15658734, 
     "DbgIndex" : 0, 
     "DbgName" : "WallCube", 
     "colorAmbient" : [1.0, 1.0, 1.0], 
     "colorDiffuse" : [1.0, 1.0, 1.0], 
     "colorSpecular" : [0.15, 0.15, 0.15], 
     "mapDiffuse" : "../../textures/walls/stone/stone.png", 
     "mapDiffuseWrap" : ["repeat", "repeat"], 
     "mapNormal" : "../../textures/walls/stone/stone_normal.png", 
     "mapNormalFactor" : 1.0, 
     "shading" : "Lambert", 
     "specularCoef" : 25, 
     "transparency" : 1.0, 
     "vertexColors" : false 
    }], 

    "vertices": [50.000000,-50.000000,-50.000000,50.000000,-50.000000,50.000000,-50.000000,-50.000000,50.000000,-50.000000,-50.000000,-50.000000,50.000000,50.000000,-50.000000,50.000000,50.000000,50.0000050,-50.000000,50.000000,50.000000,-50.000000,50.000000,-50.000000], 

    "morphTargets": [], 

    "normals": [1.000000,-1.000000,-1.000000,1.000000,-1.000000,1.000000,-1.000000,-1.000000,1.000000,-1.000000,-1.000000,-1.000000,1.000000,1.000000,-1.000000,-1.000000,1.000000,-1.000000,-1.000000,1.000000,1.000000,1.000000,1.000000,1.000000], 

    "colors": [], 

    "uvs": [[0.000000,1.000000,1.000000,1.000000,1.000000,0.000000,0.000000,0.000000]], 

    "faces": [43,0,1,2,3,0,0,1,2,3,0,1,2,3,43,4,7,6,5,0,0,1,2,3,4,5,6,7,43,0,4,5,1,0,1,2,3,0,0,4,7,1,43,1,5,6,2,0,1,2,3,0,1,7,6,2,43,2,6,7,3,0,1,2,3,0,2,6,5,3,43,4,0,3,7,0,3,0,1,2,4,0,3,5] 

} 

và đây là làm thế nào tôi tải nó:

JSONLoader = new THREE.JSONLoader(); 

Light = new THREE.PointLight(0xFFFFFF); 
Light.position = {x:0, y:75, z:350}; 

Meshes = []; 
JSONLoader.load("../assets/models/cube.js", function(Geometry) 
{ 
    for (var MeshIndex = 0; MeshIndex <= 5; MeshIndex++) 
    { 
     Meshes[MeshIndex] = new THREE.Mesh(Geometry, new THREE.MeshFaceMaterial()); 
     Meshes[MeshIndex].position.x = MeshIndex * 100; 
     Scene.add(Meshes[MeshIndex]); 
    } 
}); 

Scene.add(Light); 

Bất kỳ ý tưởng làm thế nào để làm cho hình khối trông giống như một bức tường liên tục?

Trả lời

Các vấn đề liên quan