2012-08-12 77 views
0
class Game extends backbone.View 
    constructor: -> 
     @scene = new THREE.Scene() 
     @camera = new THREE.PerspectiveCamera 75, window.innerWidth/window.innerHeight, 1, 100000 

     @camera.position.z = 300 
     @scene.add @camera 
     @imgText = imgText = THREE.ImageUtils.loadTexture "/images/health.png" 
     imgText.wrapT = imgText.wrapS = THREE.RepeatWrapping 
     sphereMat = new THREE.MeshBasicMaterial {map: imgText} 
     @mesh = new THREE.Mesh new THREE.CylinderGeometry(100, 100, 200, 64, 1, true), sphereMat 
     @mesh.doubleSided = @mesh.flipSided = true 
     @mesh.frustumCulled = false 
     @scene.add @mesh 
     pl = new THREE.PointLight 0xFFFFFF 
     [pl.position.x, pl.position.y, pl.position.z] = [10, 50, 130] 
     @scene.add pl 

     @el = $ "body" 

    render: -> 
     @renderer = new THREE.WebGLRenderer() 
     @renderer.setSize window.innerWidth, window.innerHeight 
     $(@el).append @renderer.domElement 

     $(@el).mousewheel (event, delta) => 
      @camera.position.z += delta 

    step: (delta) -> 
     @mesh.rotation.y += 1* 
     @renderer?.render @scene, @camera 

获得纹理消失/重现的一些奇怪问题。它就像整个物体消失了一段时间,然后从那里回来。我附加了一个YouTube视频。双面图形消失THREE.js中y轴上的对象旋转

http://www.youtube.com/watch?v=aHh25O6I5Vs

+0

就像它每次旋转只能显示一次纹理一样。 – Pykedout 2012-08-12 12:52:19

+0

绝对似乎是错误的或某事。如果我进入气缸内部,则不存在此问题。 – Pykedout 2012-08-13 01:09:18

+0

当我将材质的depthTest属性设置为false时,它会完全显示纹理。当它进行右转时(即使通过纹理的另一侧)。 – Pykedout 2012-08-13 21:12:59

回答

1

最有可能的,你只需要设置mesh.flipSided = falsemesh.doubleSided = true

+0

我在开始时就像这样,结果仍然相同。 – Pykedout 2012-08-12 23:31:37