UNPKG

@antv/g-webgpu-raytracer

Version:

A simple ray tracer implemented with WebGPU

33 lines (32 loc) 2.84 kB
import { vec3 } from 'gl-matrix'; import { Mesh } from '../Mesh'; // tslint:disable: variable-name var top_light_vertices = [-2.13, 5.409224, -2.27, -2.13, 5.409224, -3.32, -3.43, 5.409224, -2.27, -3.43, 5.409224, -3.32]; var top_light_triangles = [2, 1, 0, 2, 3, 1]; var floor_vertices = [-5.496001, 0.0, -5.591999, -5.528, 0.0, 0.000001, -0.000001, 0.0, -5.592, 0.0, 0.0, 0.0]; var floor_triangles = [0, 3, 2, 0, 1, 3]; var small_box_vertices = [-1.295364, -0.0, -0.663536, -1.295364, 1.65, -0.663536, -2.876464, 1.65, -1.135363, -2.876464, 0.0, -1.135364, -0.823536, 0.0, -2.244637, -0.823536, 1.65, -2.244636, -2.404637, 1.65, -2.716464, -2.404637, 0.0, -2.716464]; var small_box_triangles = [5, 0, 4, 6, 1, 5, 7, 2, 6, 4, 3, 7, 1, 3, 0, 6, 4, 7, 5, 1, 0, 6, 2, 1, 7, 3, 2, 4, 0, 3, 1, 2, 3, 6, 5, 4]; var tall_box_vertices = [-4.223526, 0.0, -2.47761, -4.223526, 3.3, -2.47761, -4.71239, 3.3, -4.053527, -4.71239, 0.0, -4.053526, -2.64761, 0.0, -2.966473, -2.64761, 3.3, -2.966474, -3.136474, 3.3, -4.54239, -3.136474, 0.0, -4.54239]; var tall_box_triangles = [5, 0, 4, 6, 1, 5, 7, 2, 6, 4, 3, 7, 1, 3, 0, 6, 4, 7, 5, 1, 0, 6, 2, 1, 7, 3, 2, 4, 0, 3, 1, 2, 3, 6, 5, 4]; var background_vertices = [-5.496001, 0.0, -5.591999, -0.000001, 0.0, -5.592, -0.000001, 5.488, -5.592, -5.560001, 5.488, -5.591999]; var background_triangles = [2, 0, 1, 2, 3, 0]; var ceilling_vertices = [0.0, 5.488, 0.0, -0.000001, 5.488, -5.592, -5.560001, 5.488, -5.591999, -5.56, 5.488, 0.000001]; var ceilling_triangles = [1, 3, 2, 1, 0, 3]; var left_wall_vertices = [-5.496001, 0.0, -5.591999, -5.528, 0.0, 0.000001, -5.560001, 5.488, -5.591999, -5.56, 5.488, 0.000001]; var left_wall_triangles = [2, 1, 0, 2, 3, 1]; var right_wall_vertices = [-0.000001, 0.0, -5.592, 0.0, 0.0, 0.0, 0.0, 5.488, 0.0, -0.000001, 5.488, -5.592]; var right_wall_triangles = [2, 0, 1, 2, 3, 0]; var light = new Mesh('light', top_light_vertices, top_light_triangles); var floor = new Mesh('floor', floor_vertices, floor_triangles); var small_box = new Mesh('small_box', small_box_vertices, small_box_triangles); var tall_box = new Mesh('tall_box', tall_box_vertices, tall_box_triangles); var ceilling = new Mesh('ceilling', ceilling_vertices, ceilling_triangles); var background = new Mesh('background', background_vertices, background_triangles); var left_wall = new Mesh('left_wall', left_wall_vertices, left_wall_triangles); var right_wall = new Mesh('right_wall', right_wall_vertices, right_wall_triangles); left_wall.diffuseColor = vec3.fromValues(0.5, 0.0, 0.0); right_wall.diffuseColor = vec3.fromValues(0.0, 0.5, 0.0); light.emission = vec3.fromValues(1.0, 1.0, 1.0); light.diffuseColor = vec3.fromValues(0.0, 0.0, 0.0); export var cornellBoxScene = [light, floor, small_box, tall_box, ceilling, background, left_wall, right_wall]; //# sourceMappingURL=cornell.js.map