├── .eslintignore ├── .eslintrc.json ├── .gitignore ├── .prettierignore ├── .prettierrc.json ├── .vscode └── settings.json ├── .yarnrc.yml ├── LICENSE ├── README.md ├── next.config.ts ├── package.json ├── public ├── canvas-fs.glsl ├── canvas-vs.glsl ├── favicon.ico ├── sample-fs.glsl ├── sample-vs.glsl ├── suzanne.mtl └── suzanne.obj ├── screenshots ├── shot1.png ├── shot2.png ├── shot3.png └── shot4.png ├── src ├── app │ ├── globals.css │ ├── layout.tsx │ ├── page.module.scss │ └── page.tsx └── lib │ ├── components │ ├── ApplicationInfo.module.scss │ ├── ApplicationInfo.tsx │ ├── Canvas.tsx │ ├── Forms.module.scss │ ├── Forms.tsx │ ├── Progress.module.scss │ ├── Progress.tsx │ ├── RenderingParams.module.scss │ ├── RenderingParams.tsx │ ├── RenderingStatus.module.scss │ ├── RenderingStatus.tsx │ └── StoreProvider.tsx │ ├── math │ ├── Matrix4x4.ts │ ├── Ray.ts │ ├── RefFrame.ts │ ├── Sphere.ts │ └── Vector1x4.ts │ ├── redux │ ├── appSlice.ts │ ├── hooks.ts │ └── store.ts │ ├── scene │ ├── CanvasShader.ts │ ├── ColorTextures.ts │ ├── Material.ts │ ├── RandomTexture.ts │ ├── SampleShader.ts │ ├── Scene.ts │ └── Shader.ts │ └── types │ ├── CanvasVars.ts │ ├── mtl-file-parser.d.ts │ └── obj-file-parser.d.ts ├── tsconfig.json └── yarn.lock /.eslintignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kamyy/webgl-ray-tracer/HEAD/.eslintignore -------------------------------------------------------------------------------- /.eslintrc.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kamyy/webgl-ray-tracer/HEAD/.eslintrc.json -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kamyy/webgl-ray-tracer/HEAD/.gitignore -------------------------------------------------------------------------------- /.prettierignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kamyy/webgl-ray-tracer/HEAD/.prettierignore -------------------------------------------------------------------------------- /.prettierrc.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kamyy/webgl-ray-tracer/HEAD/.prettierrc.json -------------------------------------------------------------------------------- /.vscode/settings.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kamyy/webgl-ray-tracer/HEAD/.vscode/settings.json -------------------------------------------------------------------------------- /.yarnrc.yml: -------------------------------------------------------------------------------- 1 | nodeLinker: node-modules 2 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kamyy/webgl-ray-tracer/HEAD/LICENSE -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kamyy/webgl-ray-tracer/HEAD/README.md -------------------------------------------------------------------------------- /next.config.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kamyy/webgl-ray-tracer/HEAD/next.config.ts -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kamyy/webgl-ray-tracer/HEAD/package.json -------------------------------------------------------------------------------- /public/canvas-fs.glsl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kamyy/webgl-ray-tracer/HEAD/public/canvas-fs.glsl -------------------------------------------------------------------------------- /public/canvas-vs.glsl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kamyy/webgl-ray-tracer/HEAD/public/canvas-vs.glsl -------------------------------------------------------------------------------- /public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kamyy/webgl-ray-tracer/HEAD/public/favicon.ico -------------------------------------------------------------------------------- /public/sample-fs.glsl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kamyy/webgl-ray-tracer/HEAD/public/sample-fs.glsl -------------------------------------------------------------------------------- /public/sample-vs.glsl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kamyy/webgl-ray-tracer/HEAD/public/sample-vs.glsl -------------------------------------------------------------------------------- /public/suzanne.mtl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kamyy/webgl-ray-tracer/HEAD/public/suzanne.mtl -------------------------------------------------------------------------------- /public/suzanne.obj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kamyy/webgl-ray-tracer/HEAD/public/suzanne.obj -------------------------------------------------------------------------------- /screenshots/shot1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kamyy/webgl-ray-tracer/HEAD/screenshots/shot1.png -------------------------------------------------------------------------------- /screenshots/shot2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kamyy/webgl-ray-tracer/HEAD/screenshots/shot2.png -------------------------------------------------------------------------------- /screenshots/shot3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kamyy/webgl-ray-tracer/HEAD/screenshots/shot3.png -------------------------------------------------------------------------------- /screenshots/shot4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kamyy/webgl-ray-tracer/HEAD/screenshots/shot4.png -------------------------------------------------------------------------------- /src/app/globals.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kamyy/webgl-ray-tracer/HEAD/src/app/globals.css -------------------------------------------------------------------------------- /src/app/layout.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kamyy/webgl-ray-tracer/HEAD/src/app/layout.tsx -------------------------------------------------------------------------------- /src/app/page.module.scss: -------------------------------------------------------------------------------- 1 | .main { 2 | margin: auto; 3 | } 4 | -------------------------------------------------------------------------------- /src/app/page.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kamyy/webgl-ray-tracer/HEAD/src/app/page.tsx -------------------------------------------------------------------------------- /src/lib/components/ApplicationInfo.module.scss: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kamyy/webgl-ray-tracer/HEAD/src/lib/components/ApplicationInfo.module.scss -------------------------------------------------------------------------------- /src/lib/components/ApplicationInfo.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kamyy/webgl-ray-tracer/HEAD/src/lib/components/ApplicationInfo.tsx -------------------------------------------------------------------------------- /src/lib/components/Canvas.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kamyy/webgl-ray-tracer/HEAD/src/lib/components/Canvas.tsx -------------------------------------------------------------------------------- /src/lib/components/Forms.module.scss: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kamyy/webgl-ray-tracer/HEAD/src/lib/components/Forms.module.scss -------------------------------------------------------------------------------- /src/lib/components/Forms.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kamyy/webgl-ray-tracer/HEAD/src/lib/components/Forms.tsx -------------------------------------------------------------------------------- /src/lib/components/Progress.module.scss: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kamyy/webgl-ray-tracer/HEAD/src/lib/components/Progress.module.scss -------------------------------------------------------------------------------- /src/lib/components/Progress.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kamyy/webgl-ray-tracer/HEAD/src/lib/components/Progress.tsx -------------------------------------------------------------------------------- /src/lib/components/RenderingParams.module.scss: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kamyy/webgl-ray-tracer/HEAD/src/lib/components/RenderingParams.module.scss -------------------------------------------------------------------------------- /src/lib/components/RenderingParams.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kamyy/webgl-ray-tracer/HEAD/src/lib/components/RenderingParams.tsx -------------------------------------------------------------------------------- /src/lib/components/RenderingStatus.module.scss: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kamyy/webgl-ray-tracer/HEAD/src/lib/components/RenderingStatus.module.scss -------------------------------------------------------------------------------- /src/lib/components/RenderingStatus.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kamyy/webgl-ray-tracer/HEAD/src/lib/components/RenderingStatus.tsx -------------------------------------------------------------------------------- /src/lib/components/StoreProvider.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kamyy/webgl-ray-tracer/HEAD/src/lib/components/StoreProvider.tsx -------------------------------------------------------------------------------- /src/lib/math/Matrix4x4.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kamyy/webgl-ray-tracer/HEAD/src/lib/math/Matrix4x4.ts -------------------------------------------------------------------------------- /src/lib/math/Ray.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kamyy/webgl-ray-tracer/HEAD/src/lib/math/Ray.ts -------------------------------------------------------------------------------- /src/lib/math/RefFrame.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kamyy/webgl-ray-tracer/HEAD/src/lib/math/RefFrame.ts -------------------------------------------------------------------------------- /src/lib/math/Sphere.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kamyy/webgl-ray-tracer/HEAD/src/lib/math/Sphere.ts -------------------------------------------------------------------------------- /src/lib/math/Vector1x4.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kamyy/webgl-ray-tracer/HEAD/src/lib/math/Vector1x4.ts -------------------------------------------------------------------------------- /src/lib/redux/appSlice.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kamyy/webgl-ray-tracer/HEAD/src/lib/redux/appSlice.ts -------------------------------------------------------------------------------- /src/lib/redux/hooks.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kamyy/webgl-ray-tracer/HEAD/src/lib/redux/hooks.ts -------------------------------------------------------------------------------- /src/lib/redux/store.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kamyy/webgl-ray-tracer/HEAD/src/lib/redux/store.ts -------------------------------------------------------------------------------- /src/lib/scene/CanvasShader.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kamyy/webgl-ray-tracer/HEAD/src/lib/scene/CanvasShader.ts -------------------------------------------------------------------------------- /src/lib/scene/ColorTextures.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kamyy/webgl-ray-tracer/HEAD/src/lib/scene/ColorTextures.ts -------------------------------------------------------------------------------- /src/lib/scene/Material.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kamyy/webgl-ray-tracer/HEAD/src/lib/scene/Material.ts -------------------------------------------------------------------------------- /src/lib/scene/RandomTexture.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kamyy/webgl-ray-tracer/HEAD/src/lib/scene/RandomTexture.ts -------------------------------------------------------------------------------- /src/lib/scene/SampleShader.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kamyy/webgl-ray-tracer/HEAD/src/lib/scene/SampleShader.ts -------------------------------------------------------------------------------- /src/lib/scene/Scene.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kamyy/webgl-ray-tracer/HEAD/src/lib/scene/Scene.ts -------------------------------------------------------------------------------- /src/lib/scene/Shader.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kamyy/webgl-ray-tracer/HEAD/src/lib/scene/Shader.ts -------------------------------------------------------------------------------- /src/lib/types/CanvasVars.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kamyy/webgl-ray-tracer/HEAD/src/lib/types/CanvasVars.ts -------------------------------------------------------------------------------- /src/lib/types/mtl-file-parser.d.ts: -------------------------------------------------------------------------------- 1 | declare module "mtl-file-parser"; 2 | -------------------------------------------------------------------------------- /src/lib/types/obj-file-parser.d.ts: -------------------------------------------------------------------------------- 1 | declare module "obj-file-parser"; 2 | -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kamyy/webgl-ray-tracer/HEAD/tsconfig.json -------------------------------------------------------------------------------- /yarn.lock: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kamyy/webgl-ray-tracer/HEAD/yarn.lock --------------------------------------------------------------------------------