Advertisement
Guest User

Three.js first webGL demo

a guest
May 4th, 2020
164
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Nim 1.09 KB | None | 0 0
  1. # Three.js most basic demo rotates a Cube in x / y planes using webGL
  2. # Library now has fully comprehensive .d.dts typescript definitons,
  3. # but it is remains lousy typescript...
  4. #
  5. # @jorjun (Vvi ☉ v ☽ xi)
  6.  
  7.  
  8. import
  9.     dom,
  10.     jsffi
  11.  
  12. var THREE {.importc, nodecl.}: JsObject
  13. var document {.importc, nodecl.}: JsObject
  14.  
  15. let scene = jsNew THREE.Scene()
  16. var camera = jsNew THREE.PerspectiveCamera(75, window.innerWidth / window.innerHeight, 0.1, 1000)
  17. camera.position.z = 4
  18.  
  19. var renderer = jsNew THREE.WebGLRenderer({ "antialias": true })
  20. renderer.setClearColor("#000000")
  21. renderer.setSize(window.innerWidth, window.innerHeight)
  22.  
  23. document.body.appendChild(renderer.domElement)
  24.  
  25. var geometry = jsNew THREE.BoxGeometry(1, 1, 1)
  26. var material = jsNew THREE.MeshBasicMaterial({ "color": "#433F81" })
  27. var cube = jsNew THREE.Mesh(geometry, material)
  28.  
  29. scene.add(cube)
  30.  
  31. proc render(time: float = 30.0) =
  32.     cube.rotation.x += 0.01                <== problem A
  33.     cube.rotation.y += 0.01
  34.     renderer.render(scene, camera)
  35.     requestAnimationFrame(window, render)  <== problem B
  36. render()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement