https://github.com/jasonchen1982/raytracer
a ray tracer engine base on javascript
https://github.com/jasonchen1982/raytracer
canvas ray tracer
Last synced: 7 months ago
JSON representation
a ray tracer engine base on javascript
- Host: GitHub
- URL: https://github.com/jasonchen1982/raytracer
- Owner: jasonChen1982
- Created: 2017-03-09T08:06:41.000Z (over 8 years ago)
- Default Branch: master
- Last Pushed: 2017-03-17T12:12:54.000Z (over 8 years ago)
- Last Synced: 2024-04-25T11:43:46.779Z (over 1 year ago)
- Topics: canvas, ray, tracer
- Language: JavaScript
- Size: 195 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Ray Tracer
[](https://travis-ci.org/jasonChen1982/rayTracer)
[](https://jasonchen1982.github.io/raytracer/)# a simple ray tracer engine
![screenshot picture][screenshot]## npm status
[](https://www.npmjs.com/package/raytracer)## Example
[tracer sphere and plane][ray-tracer]## Introduction
rayTracer is a lightweight ray tracer render engine base on canvas 2d api.
## Feature
Include `light` `object3d` `camera` `scene` `renderer` `reflect` and so on.
rayTracer`s api is very like threejs, you can ease to code your stage by following:
```javascript
const renderer = new JC.Renderer({
canvas: document.querySelector('#canvas_screen'),
});
const scene = new JC.Scene();
const camera = new JC.Camera(new JC.Vector3(0, 5, 15), 90, new JC.Vector3(0, 0, -1), new JC.Vector3(0, 1, 0));const plane = new JC.Plane(new JC.Vector3(0, 1, 0), 0);
plane.material = new JC.CheckerMaterial(0.1, 0.5);scene.adds(plane);
renderer.render(scene, camera);
```## License
[MIT](http://opensource.org/licenses/MIT)
[ray-tracer]:https://jasonchen1982.github.io/rayTracer/examples/demo1/ "rayTracer demo"
[screenshot]:https://jasonchen1982.github.io/rayTracer/examples/static/demo1.png "screenshot picture"