All Projects → Ubpa → Toyrtx

Ubpa / Toyrtx

Licence: other
CPU & GPU RTX based on OpenGL

Programming Languages

cpp
1120 projects

Projects that are alternatives of or similar to Toyrtx

Diligentcore
Core functionality of Diligent Engine
Stars: ✭ 263 (+13.85%)
Mutual labels:  opengl, raytracing
Nau
Nau - OpenGL + Optix 3D Engine
Stars: ✭ 18 (-92.21%)
Mutual labels:  opengl, raytracing
Diligentengine
A modern cross-platform low-level graphics library and rendering framework
Stars: ✭ 2,142 (+827.27%)
Mutual labels:  opengl, raytracing
Libagar
Cross-Platform GUI Toolkit (stable)
Stars: ✭ 212 (-8.23%)
Mutual labels:  opengl
Glrippleview
Custom GLSurfaceView for Android to show image with ripple effect using OpenGL.
Stars: ✭ 216 (-6.49%)
Mutual labels:  opengl
Gl ssao
optimized screen-space ambient occlusion, cache-aware hbao
Stars: ✭ 220 (-4.76%)
Mutual labels:  opengl
Optix Pathtracer
Simple physically based path tracer based on Nvidia's Optix Ray Tracing Engine
Stars: ✭ 231 (+0%)
Mutual labels:  raytracing
Engine
A basic cross-platform 3D game engine
Stars: ✭ 208 (-9.96%)
Mutual labels:  opengl
Gltf
A crate for loading glTF 2.0
Stars: ✭ 224 (-3.03%)
Mutual labels:  opengl
Punes
Nintendo Entertaiment System emulator and NSF/NSFe Music Player (Linux, FreeBSD, OpenBSD and Windows)
Stars: ✭ 217 (-6.06%)
Mutual labels:  opengl
Raspberry Pi
My public Baremetal Raspberry Pi code
Stars: ✭ 218 (-5.63%)
Mutual labels:  opengl
Etlegacy
ET: Legacy is an open source project based on the code of Wolfenstein: Enemy Territory which was released in 2010 under the terms of the GPLv3 license.
Stars: ✭ 212 (-8.23%)
Mutual labels:  opengl
Rustarok
Multiplayer, fast-paced Moba style game
Stars: ✭ 223 (-3.46%)
Mutual labels:  opengl
Csfml
Official binding of SFML for C
Stars: ✭ 211 (-8.66%)
Mutual labels:  opengl
Tomviz
Cross platform, open source application for the processing, visualization, and analysis of 3D tomography data
Stars: ✭ 230 (-0.43%)
Mutual labels:  opengl
Saba
OpenGL Viewer (OBJ PMD PMX)
Stars: ✭ 208 (-9.96%)
Mutual labels:  opengl
Island
Lightweight and low-level creative coding toolkits in C.
Stars: ✭ 225 (-2.6%)
Mutual labels:  opengl
Skui
Skia-based C++ UI framework
Stars: ✭ 218 (-5.63%)
Mutual labels:  opengl
Ios Gpuimage Plus
GPU accelerated image filters for iOS, based on OpenGL.
Stars: ✭ 217 (-6.06%)
Mutual labels:  opengl
Nimgl
NimGL is a Nim library that offers bindings for popular libraries used in computer graphics
Stars: ✭ 218 (-5.63%)
Mutual labels:  opengl

1. 简介

这是我对 光线追踪 的练习,内容基于

  • Ray Tracing in One Weekend
  • Ray Tracing the Next Week
  • Ray Tracing the Rest of Your Life (暂时不写)

作者的源码网址

https://github.com/petershirley/raytracinginoneweekend

https://github.com/petershirley/raytracingthenextweek

https://github.com/petershirley/raytracingtherestofyourlife

对内容进行了大量的修改,优化,新增

详细内容参考 notes 和 源码

图形接口使用的是 OpenGL

近日正在着手 GPU的实现方案

2. 代码框架

/01_in_One_Weekend
  -01_01_Image
  -01_02_Camera
  -01_03_Sphere
  -01_04_Group
  -01_05_Material
  -01_06_Scene
/02_the_Next_Week
  -02_01_MotionBlur
  -02_02_AABB
  -02_03_Texture
  -02_04_Light
  -02_05_TriMesh
  -02_06_Transform
  -02_07_Volume
  -02_08_All
/03_GPU_RayTracing
	(只有3_9,3_10 和 3_11可以运行,如需运行03_01-03_08,需要回退版本)
  -03_01_Basic
  -03_02_RayTracingBasicSystem
  -03_03_Material
  -03_04_GenData
  -03_05_BVH_Node
  -03_06_ImgTexture
  -03_07_Light
  -03_08_TriMesh
  -03_09_Transform
  -03_10_Volume
  -03_11_All
/04_Extension
  -04_01_Skybox
  -04_02_Model
  -04_03_GPU_Skybox_Model
  -04_04_GPU_Loop
/Utility
  /OpenGL
    -Camera
    -FBO
    -gal
    -Glfw
    -Mesh
    -Model
    -Shader
    -Texture
    -VAO
  /Other
    -ArgManager
    -Config
    -EventManager
    -File
    -Header: Array2D, GStorage, LStorage, Pool, Ptr, RandSet, Singleton, Vec
    -HeapObj
    -Image
    -Math: Math, Perlin
    -Operation: Operation, LambdaOp, InfoLambdaOp, OpQueue
    -Shape: Shape, Cube, Sphere
    -Timer
  /RayTracing
    -Hitable: AABB, BVH_Node, Group, Hitable, MoveSphere, Sky, Sphere, Transform, Triangle, TriMesh, Volume
    -ImgWindow: ImgWindow, TexWindow
    -Material: Dielectric, Lambertian, Material, Metal, OpMaterial
    -RayCamera: Ray, RayCamera, TRay, TRayCamera
    -RT_Texture: ImgTexture, OpTexture(Const, Checker, Noise), Texture
    -Scene

2. 使用方法

2.1 环境

  • Visual Studio 2017+
  • Windows10
  • Git
  • CMake(版本2.8以上)

2.2 下载代码

git clone https://github.com/Ubpa/RayTracingToy

2.3 编译

  1. 建立工程
# 在 cmd 中运行如下命令
mkdir build
cd build
cmake .. -A Win32
  1. 打开 /build/RayTracingToy.sln
  2. 解决方案中CMakePredefinedTargets中,右键INSTALL,点击生成

2.4 配置

在运行exe前,可以对 config.out 进行修改来配置,在调试时在 config.in 进行修改来配置

3. 出图

01_06_Scene

01_in_a_Weekend_06_Scene

02_the_Next_Week_07_Volume

02_the_Next_Week_07_Volume

02_the_Next_Week_08_All

02_the_Next_Week_08_All

Glass Cube

02_the_Next_Week_08_All

04_03_GPU_Skybox_Model

04_Extension_03_GPU_Skybox_Model_post

04_04_GPU_Loop

04_Extension_04_GPU_Balance_post

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].