diff --git a/coffee/bot.coffee b/coffee/bot.coffee index ddbf0d9..dd9b91f 100644 --- a/coffee/bot.coffee +++ b/coffee/bot.coffee @@ -30,39 +30,44 @@ class Bot extends Pushable geom = new THREE.SphereGeometry 0.5, 32, 32, 16, Math.PI geom = new THREE.SphereGeometry 0.5, 32, 32, 0, 2*Math.PI, 0, 2.2 - noseMat = new THREE.Matrix4() - trans = new THREE.Vector3 0,-0.543,0 - rot = new THREE.Quaternion().setFromEuler new THREE.Euler Vector.DEG2RAD(180), 0, 0 + nmatr = new THREE.Matrix4() + trans = new THREE.Vector3 0,-0.543,0 + rot = new THREE.Quaternion().setFromEuler new THREE.Euler Vector.DEG2RAD(180), 0, 0 - noseMat.compose trans, rot, new THREE.Vector3 1,1,1 - geom.merge nose, noseMat + nmatr.compose trans, rot, new THREE.Vector3 1,1,1 + geom.merge nose, nmatr geom.rotateX Vector.DEG2RAD -90 geom.scale 0.7, 0.7, 0.7 - botMat = new THREE.MeshPhongMaterial + @botMat = new THREE.MeshPhongMaterial color: 0x2222ff side: THREE.FrontSide shading: THREE.SmoothShading + transparent: true + opacity: 1 shininess: 5 - @mesh = new THREE.Mesh geom, botMat + @mesh = new THREE.Mesh geom, @botMat geom = new THREE.TorusGeometry 0.5-tireRadius, tireRadius, 16, 32 geom.scale 1,1,2.5 - tireMat = new THREE.MeshPhongMaterial + @tireMat = new THREE.MeshPhongMaterial color: 0x000066 specular: 0x222255 side: THREE.FrontSide shading: THREE.FlatShading + transparent: true + opacity: 1 shininess: 4 + alphaTest: 0.1 - @leftTire = new THREE.Mesh geom, tireMat + @leftTire = new THREE.Mesh geom, @tireMat @leftTire.position.set 0.35,0,0 @leftTire.rotation.set 0, Vector.DEG2RAD(90), 0 @mesh.add @leftTire - @rightTire = new THREE.Mesh geom, tireMat + @rightTire = new THREE.Mesh geom, @tireMat @rightTire.position.set -0.35,0,0 @rightTire.rotation.set 0, Vector.DEG2RAD(-90), 0 @mesh.add @rightTire @@ -108,6 +113,10 @@ class Bot extends Pushable @startTimedAction @getActionWithId(Action.NOOP), 500 + setOpacity: (opacity) -> + @botMat.opacity = opacity + @tireMat.opacity = opacity + # 0000000 000 00000000 00000000 0000000 000000000 000 0000000 000 000 # 000 000 000 000 000 000 000 000 000 000 000 0000 000 # 000 000 000 0000000 0000000 000 000 000 000 000 000 0 000 diff --git a/coffee/stone.coffee b/coffee/stone.coffee index 155a7b4..94e27b7 100644 --- a/coffee/stone.coffee +++ b/coffee/stone.coffee @@ -11,15 +11,16 @@ class Stone extends Pushable constructor: (@slippery=false) -> @geom = new THREE.BoxGeometry 0.98,0.98,0.98 - # @geom.translate 0.01, 0.01, 0.01 @mat = new THREE.MeshPhongMaterial color: 0xff8800 side: THREE.DoubleSide - shading: THREE.FlatShading + shading: THREE.SmoothShading transparent: true opacity: 0.8 - shininess: 15 + shininess: 20 + # alphaTest: 0.05 + depthWrite: false @mesh = new THREE.Mesh @geom, @mat super diff --git a/coffee/world.coffee b/coffee/world.coffee index 38948f2..126f08f 100644 --- a/coffee/world.coffee +++ b/coffee/world.coffee @@ -63,8 +63,9 @@ class World extends Actor @renderer = new THREE.WebGLRenderer antialias: true - logarithmicDepthBuffer: true + logarithmicDepthBuffer: false autoClear: true + sortObjects: true @renderer.setClearColor 0x000000 @renderer.setSize @view.offsetWidth, @view.offsetHeight @@ -680,6 +681,7 @@ class World extends Actor when World.CAMERA_INSIDE then @projection = @player.getInsideProjection() when World.CAMERA_BEHIND then @projection = @player.getBehindProjection() when World.CAMERA_FOLLOW then @projection = @player.getFollowProjection() + @player.setOpacity clamp 0, 1, @projection.getPosition().minus(@player.current_position).length()-0.4 @projection.apply @camera @sun.position.copy @camera.position @renderer.render @scene, @camera