All Projects → g1n0st → AyaRay

g1n0st / AyaRay

Licence: GPL-3.0 license
A Modern C++ Windows-platform physically based renderer developing by Chang Yu.

Programming Languages

C++
36643 projects - #6 most used programming language
c
50402 projects - #5 most used programming language

Projects that are alternatives of or similar to AyaRay

webgpu-renderer
A simple renderer implemented by WebGPU, includes a builtin path tracing pipeline.
Stars: ✭ 122 (+320.69%)
Mutual labels:  renderer, ray-tracing
Diligentengine
A modern cross-platform low-level graphics library and rendering framework
Stars: ✭ 2,142 (+7286.21%)
Mutual labels:  renderer, ray-tracing
LuisaRender
High-Performance Multiple-Backend Renderer Based on LuisaCompute
Stars: ✭ 47 (+62.07%)
Mutual labels:  renderer, ray-tracing
Vqengine
DirectX 11 Renderer written in C++11
Stars: ✭ 250 (+762.07%)
Mutual labels:  multithreading, renderer
Voxel Cone Tracing
A real-time global illumination implementation using voxel cone tracing. Implemented in C++ and GLSL.
Stars: ✭ 555 (+1813.79%)
Mutual labels:  renderer, ray-tracing
Photon-v2
A program that takes photographs of a virtual world.
Stars: ✭ 75 (+158.62%)
Mutual labels:  renderer, ray-tracing
numpy-html
Render NumPy arrays as HTML tables
Stars: ✭ 38 (+31.03%)
Mutual labels:  renderer
cadise
A developing physically-based hobby renderer written in C++.
Stars: ✭ 30 (+3.45%)
Mutual labels:  ray-tracing
Aqeous
(Inactive, Checkout AvanaOS, Rewrite of this) This is a New Operating System (Kernel right now). Made completely from scratch, We aim to make a complete OS for Learning purpose
Stars: ✭ 23 (-20.69%)
Mutual labels:  multithreading
android-3d-model-viewer
Android app to load 3D models in obj, stl, dae & gltf format using pure OpenGL ES 2.0. Published on Play Store https://play.google.com/store/apps/details?id=org.andresoviedo.dddmodel2
Stars: ✭ 150 (+417.24%)
Mutual labels:  renderer
ProtoTracer
3D rendering and animation engine for multifaceted displays on microcontrollers
Stars: ✭ 80 (+175.86%)
Mutual labels:  ray-tracing
VkInline
A tool to make it easy to use Vulkan from Python. An interface for computation and off-screen rendering.
Stars: ✭ 16 (-44.83%)
Mutual labels:  ray-tracing
gostore
Storage algorithms.
Stars: ✭ 34 (+17.24%)
Mutual labels:  multithreading
JMT-MCMT
A multithreading mod for for Minecraft forge 1.15.2 and 1.16.x
Stars: ✭ 206 (+610.34%)
Mutual labels:  multithreading
psimd
Portable 128-bit SIMD intrinsics
Stars: ✭ 48 (+65.52%)
Mutual labels:  simd-programming
DummyEngine
Small cross platform Vulkan/OpenGL 3d engine for personal experimentation
Stars: ✭ 76 (+162.07%)
Mutual labels:  renderer
manta-ray
An open source physically based renderer.
Stars: ✭ 604 (+1982.76%)
Mutual labels:  renderer
ray-tracer
A simple ray tracing engine
Stars: ✭ 27 (-6.9%)
Mutual labels:  ray-tracing
Master-Thesis
Deep Reinforcement Learning in Autonomous Driving: the A3C algorithm used to make a car learn to drive in TORCS; Python 3.5, Tensorflow, tensorboard, numpy, gym-torcs, ubuntu, latex
Stars: ✭ 33 (+13.79%)
Mutual labels:  multithreading
llb
Dead simple event-driven load-balancer
Stars: ✭ 27 (-6.9%)
Mutual labels:  multithreading

AyaRay

Last update: 2020/4/16

g1n0st

AyaRay is a physically based Windows-platform renderer developing by Chang Yu, for the purpose of learning global illumination and Ray Tracing. AyaRay is written in modern C ++ and integrates multi-threading and SIMD at the bottom to optimize high-performance computing. It includes many state of the art algorithms published in recent years in light transport simulation. The ultimate goal of AyaRay is to have a complete offline rendering procedure, and provide the corresponding workflow for the artist.

Welcome to use any part of the code or the application in any place, but it should be warned that for now the code is just a demo. And it has no enough ability in any commercial occasions. If you have any issue, please post to the issue page and I will reply as early as I can.

Demos

san-miguel 2nd floor, 1280x800, 1024spp

san-miguel 1-st floor, 1280x800, 1024spp

point-light with bunny in cornell-box, 600x600, 200spp

Build

Because the project is still building and need fast iteration, so it has not provide project file yet, you can include all files to build the current version.

Compile switch

  • AYA_DEBUG debug option (off by default)
  • AYA_USE_SIMD Use SIMD / SEE instructions in the math library (on by default)
  • AYA_SAMPLED_SPECTRUM Use Sampled Spectrum replace RGB Spectrum (off by default)
  • AYA_USE_EMBREE Replace default BVH to Intel® Embree BVH (default ver.2)
  • AYA_USE_EMBREE_STATIC_LIB Make Embree provided as static lib (on by default)

Features

Integrators

  • Direct Lighting Integrator
  • Path Tracing
  • Bidirectional Path Tracing with MIS
  • Vertex Connection and Merging (Debugging)
  • Multiplex Metropolis Light Transport

Materials

  • Bump Map
  • Texture Map
  • Alpha Test in texture
  • BSDFs
    • Lambertian Diffuse
    • Mirror (Smooth Conductor)
    • Glass (Smooth Dielectric)
    • Disney BRDF
    • Rough Conductor/Dielectric

Acceleration Structures

  • BVH
  • Intel® Embree BVH (ver.2 / ver.3)

Lights

  • Point Light
  • Area Light
  • Environmental Light
  • Spot Light
  • Directional Light

Media

  • Homogenous

Samplers

  • Independent Sampler
  • Sobol Sequence with Screen Space Index Enumeration

Cameras

  • Perspective Camera
  • Motion blur
  • Custom lens shape
  • Vignette and Cat-eye effect

Filters

  • Box Filter
  • Triangle Filter
  • Gaussian Filter
  • Mitchell Netravali Filter

File Loaders

  • .Obj Model File Format
  • .Mtl File Format

Math Library AyaMath

Todo Lists (Planning schedule)

  • More Integrators

    • Stochastic Progressive Photon Mapping
  • Project Build based on CMake and Github Project dependency

  • IES Lighting support

  • More Cameras Model

    • Environment Camera
    • Orthographic Camera
  • BSSRDF

  • AyaGUI interface AyaGUI

  • Preview interface based on GLSL Ray Tracing

  • OpenGL-based preview interface

  • User-defined scene import and export parser based on python syntax

  • Denoiser

  • Mesh Editor

  • Bezier rendering pipeline

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].