Skip to content

byhj/byhj-Render

Repository files navigation

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

DirectX

Texture

Model

GUI

Audio

Font

Memory

other

Next GPU API Sample


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:

		  |Root
              |-- include
              |-- src
              |-- media
              |-- lib
              |-- extern
              |-- doc
        |Output
              |-- bin(Execute Dir)
              |-- temp(temp file we possibly not need)

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


Sample

Triangle (Vulkan & Direct3D12)

---

Triangle (Direct3D12)

---

Texture (Vulkan)

---

Billboard (OpenGL3+)

  Use Geometry Shader to make billboard. The shader code is base the OpenGL Step by Step Tutorial27


Bloom (OpenGL3+)

  Use gaussian blur to make the bloom effect. The detail tutorial read on Learning OpenGL


Terrain (Direct3D11)

  Use height map to make the terrain. Then, use slope based texturing to make grass and rock effect.


Fog (OpenGL3+)


Bezier (OpenGL3+)

---

Normal Mapping (OpenGL3+)


Skybox (OpenGL3+)


Rim-Light (OpenGL3+)


Sprites (OpenGL3+)

---

Texture-Array (OpenGL3+)


Texture-Light (Direct3D11)


Toon Mapping (OpenGL3+)

---

Shadow Mapping (OpenGL3+)


Tessellation-Triangle (OpenGL3+)


Render To Texture (OpenGL3+ & Direct3D11)


SSAO (OpenGL3+)

--- ## Layer Rendering (OpenGL3+)


Blinn-Phong (OpenGL3+)

---

Point-Light (OpenGL3+)


Spot-Light (OpenGL3+)


Instance Rendering (OpenGL3+)


Model Blending (Direct3D11)


Fur (OpenGL3+)


CEGUI


DXUT


Deffered-Shading


Motion-Blur


Mesh Load (OpenGL3+ & Direct3D11)


About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published