Skip to content

XZiar/RayRenderer

Repository files navigation

RayRenderer

CI

No it's not a renderer.

That's just an excuse for me to write a collection of utilities which "will be used for the renderer".

Maintaing and growing the project is much more fun than make it actually renderable. 😅

Changes from old project

The old preject is here

  • fixed pipeline --> GLSL shader
  • x64/AVX2 only RayTracing --> multi versions of acceleration RayTracing(may also include OpenCL)
  • GLUT based GUI --> simple GUI with FreeGLUT, complex GUI with WPF
  • coupling code --> reusable components

Component

Component Description Language Platform
3rdParty 3rd party library C,C++ N/A
common Basic but useful things Multi N/A
SystemCommon System-level common library C++ Win & Linux & Android & iOS
Nailang A customizable language C++ Win & Linux & Android & iOS
ImageUtil Image Read/Write Utility C++ Win & Linux & Android & iOS
XComputeBase Base Library for Cross-Compute C++ Win & Linux & Android & iOS
OpenGLUtil Wrapper of OpenGL things C++ Win & Linux
OpenCLUtil Wrapper of OpenCL things C++ Win & Linux & Android
OpenCLInterop OpenCL Interoperation utility C++ Win & Linux
FontHelper Helper for displaying font in OpenGL C++ Win & Linux
TextureUtil Texture Utility C++ Win & Linux
WindowHost Multi-threaded GUI host C++ Win & Linux
ResourcePackager Resource (de)serialize support C++ Win & Linux
RenderCore Core of DizzRenderer C++ Win & Linux
RenderCoreWrap C++/CLI Wrapper for RenderCore C++/CLI Win
CommonUtil Basic utilities for C# C# Win
AnyDock Flexible dock layout like AvalonDock for WPF C# Win
OpenGLView Wrapper of OpenGL window in WinForm C++/CLI Win
DizzTest Test Program(C++) (using WindowHost) C++ Win & Linux
UtilTest Utilities Test Program(C++) C++ Win & Linux
WPFTest Test Program(C#) in WPF (using OpenGLView) C# Win

Platform Requirements

Since C++/CLI is used for C# bindings, and multiple DLL hacks are token for DLL-embedding, it's Windows-only.

For Windows parts, Windows SDK Target is 10(latest). .Net Core 7.0 needed for C# components.

To use xzbuild, python3.7+ is required.

Build

To build C++ parts, a C++17 compiler is needed and C++20 is recommanded (defaultly used for gcc>=9 and clang>=9).

For Windows, project uses VisualStudio2022, VS2022(>17.6) is needed for the vcproj version.

For Linux, project uses xzbuild (need python3.7+) with make. Utilities that have xzbuild.proj.json inside are capable to be compiled on Linux, tested on gcc(9~11) and clang(9~12).

ICEs

Example usage of xzbuild

python3 xzbuild help
python3 xzbuild list
python3 xzbuild build all
python3 xzbuild buildall UtilTest

Additional Requirements

boost headers folder should be found inside include path. It can be added in SolutionInclude.props on Windows, or specified by environment variable CPP_DEPENDENCY_PATH on *nix.

gl.h and glu.h headers should be found inside include path\GL.

nasm needed for libjpeg-turbo --- add it to system environment path

ispc compiler needed for ispc_texcomp --- add it to system environment path.

Dependency

License

RayRenderer (including its component) is licensed under the MIT license.

Releases

No releases published

Packages

No packages published