byhj-Render

Graphics

byhj-Render

Welcome,this is a gpu render by byhj. I write it by using OpenGL3+ and Direct3D11. I classify this project by the book of real-time rending.

 Introduction

The whole project will be three parts:

Render:
This part is the render base code. It has resource(texture, model, audio) manager and the render framework.

Sample:
The sample part include OpenGL3+ and DirectX11 Sample code. I also write the base supprot for Next GPU API
(Direct3D12 & Vulkan).

Utility:
The utility part show the important extensions : camera, gui, font, audio, meshload, texture, window, script, resource

Notice:

OpenGL:
For the shader effect, the opengl3+ will need, the shader file will be:
– .vert : GL_VERTEX_SHADER
– .tcs : GL_TESS_CONTROL_SHADER
– .tes : GL_TESS_EVALUATION_SHADER
– .geom : GL_GEOMETRY_SHADER
– .farg : GL_FRAGMENT_SHADER
– .comp : GL_COMPUTE_SHADER
Your can use NShader to make shader file heightlight.

Direct3D:

The D3DX is not include since Windows8+, so the d3dx support part is use old directx11 sdk.
For more information about d3dx obsolete, read the Living without D3DX.

The direct3d shader file will be:
– .vsh: D3D_VERTEX_SHADER
– .hsh: D3D_HULL_SHADER
– .dsh: D3D_DOMAIN_SHADER
– .gsh: D3D_GEOMETRY_SHADER
– .psh: D3D_PIXEL_SHADER
– .csh: D3D_COMPUTE_SHADER

Vulkan:
Vulkan is the next gpu api, more information read the Vulkan

Requirements

## Compiler
Visual Studio 2015 (I will write the cmake file in the future). I provide the (x86) dependences file only.
Your can build the dependences by yourself.

## Dependences

### OpenGL
OpenGL Mathematics (GLM)
[GLFW]
The OpenGL Extension Wrangler Library(GLEW)
[OpenGL Image (GLI)]

### DirectX
[DirectX Tool Kit(DirectXTK)]
[Effects for Direct3D 11(FX11)]

### Texture
[SOIL]
[DevIL]
[FreeImage]

### Model
[Open Asset Import Library(Assimp)]

### GUI
[AntWeakbar]
[Crazy Eddie’s GUI(CEGUI)]
[DXUT]

### Audio
[irrKlang]

### Font
[Freetype]
[FW1FontWrapper]
[SpriteFont]

### Memory
[Visual Leak Detector(VLD)]

### other
[Lua]
[TinyXML2]

## Next GPU API Sample
[Vulkan SDK]
[Direct3D12]
For the DirectX12, your need the [Win10SDK]

How to Buil

1. Make sure you develop environment is right. I write some code by c++ 11, so the compiler should support the
c++11, use vs2015 will be the best choice or modifed by yourself if you use other compilers.

2. Project Organization:

 

Notice: .props file is the command properties file, it set up the develop environment easily.

Sample

#