Skip to content

Commit

Permalink
Changes to README.md
Browse files Browse the repository at this point in the history
  • Loading branch information
simongeilfus committed Dec 23, 2015
1 parent 35ea9ae commit 7c4cac8
Show file tree
Hide file tree
Showing 13 changed files with 46 additions and 23 deletions.
2 changes: 1 addition & 1 deletion CascadedShadowMapping/README.md
@@ -1,4 +1,4 @@
##### [Cascaded Shadow Mapping](src/CascadedShadowMappingApp.cpp)
#### [Cascaded Shadow Mapping](src/CascadedShadowMappingApp.cpp)
Cascaded Shadow Mapping is a common method to get high resolution shadows near the viewer. This sample shows the very basic way of using this technique by splitting the frustum into different shadow maps. CSM has its own issues but usually provides better shadow resolution near the viewer and lower resolutions far away. The sample uses ESM for the shadowing algorithm (see the [ESM sample](/ExponentialShadowMap) for more infos about ESM).

One easy improvement to this sample is to use the approach shown in the [GpuParrallelReduction sample](/GpuParrallelReduction) to find the minimum and maximum depth of the scene and use those values to better fit what the viewer see from the scene. Other approaches involve, better frustum culling, better splitting scheme or more stable samples distributions.
Expand Down
2 changes: 1 addition & 1 deletion ColorGrading/README.md
@@ -1,4 +1,4 @@
##### [Color Grading](src/ColorGradingApp.cpp)
#### [Color Grading](src/ColorGradingApp.cpp)
This sample shows a really easy way to add proper color grading to your apps. The trick is to store a 3d color lookup table and to use it to filter the output of a fragment shader. The nice thing about it is that you can use Photoshop or any other editing tool to create the right look and then replicate the exact same grading at a really low cost (the cost of one extra texture sample per fragment).

Press 'e' top open photoshop and live edit the color grading. When the file is saved in photoshop, the app automatically reloads the color grading.
Expand Down
2 changes: 1 addition & 1 deletion GpuParrallelReduction/README.md
@@ -1,4 +1,4 @@
##### [Gpu Parrallel Reduction](src/GpuParrallelReductionApp.cpp)
#### [Gpu Parrallel Reduction](src/GpuParrallelReductionApp.cpp)
Not a particularly exciting sample but a usefull technique. It can be use to gatter the average brightness of a scene and improve tonemapping, or to get the minimum and maximal depth and improve shadow mapping algorithm, etc...

The sample simply show how to use the different mipmap level of a texture to progressively reduce its size until its reasonable to copy it back to the cpu and read the results.
Expand Down
2 changes: 1 addition & 1 deletion PBRBasics/README.md
@@ -1,4 +1,4 @@
##### [PBR Basics](src/PBRBasicsApp.cpp)
#### [PBR Basics](src/PBRBasicsApp.cpp)
This sample show the basics of a physically based shading workflow. Mainly adapted from disney and epic papers on the subject. PBR without textures is not particularly interesting, but it's a good introduction.

![Image](../Images/PBRBasics.jpg)
Expand Down
2 changes: 1 addition & 1 deletion PBRImageBasedLighting/README.md
@@ -1,4 +1,4 @@
##### [PBR Image Based Lighting](src/PBRImageBasedLightingApp.cpp)
#### [PBR Image Based Lighting](src/PBRImageBasedLightingApp.cpp)
Image Based Lighting Diffuse and Specular reflections. Uses Cubemaps created in [CmftStudio](https://github.com/dariomanesku/cmftStudio). This sample uses a full approximation as described on [this Unreal Engine blog post](https://www.unrealengine.com/blog/physically-based-shading-on-mobile).

![Image](../Images/PBRImageBasedLighting0.jpg)
Expand Down
2 changes: 1 addition & 1 deletion PBRTexturingBasics/README.md
@@ -1,4 +1,4 @@
##### [PBR Texturing Basics](src/PBRTexturingBasicsApp.cpp)
#### [PBR Texturing Basics](src/PBRTexturingBasicsApp.cpp)
Basic use of textures in a physically based shading workflow.

![Image](../Images/PBRTexturingBasics0.jpg)
Expand Down
13 changes: 12 additions & 1 deletion ParallaxCorrectedCubemap/README.md
@@ -1,5 +1,16 @@
##### ParallaxCorrectedCubemap
#### [Parallax Corrected Cubemap](/src/ParallaxCorrectedCubemapApp.cpp)
Cubemap environment mapping is the most straightforward way to add reflection to a scene. Usually cubemaps reflections represent infinitely far away reflections. This sample shows how to correct the texture lookup to have proper local reflections. This is not shown in this sample but this can also be used to fake small local light sources as well. The sample uses lightmapping to keep the code simple.

Here's some interesting links on the subject :
https://seblagarde.wordpress.com/2012/11/28/siggraph-2012-talk/
https://seblagarde.wordpress.com/2012/09/29/image-based-lighting-approaches-and-parallax-corrected-cubemap/
http://c0de517e.blogspot.be/2015/03/being-more-wrong-parallax-corrected.html
http://www.clicktorelease.com/blog/making-of-cruciform
http://gpupro.blogspot.be/2013/02/gpu-pro-4-practical-planar-reflections.html
http://learnopengl.com/#!Advanced-OpenGL/Cubemaps
http://www.frostbite.com/wp-content/uploads/2014/11/course_notes_moving_frostbite_to_pbr.pdf

![Image](../Images/ParallaxCorrectedCubemap.jpg)

##### License
Copyright (c) 2015, Simon Geilfus - All rights reserved.
Expand Down
8 changes: 0 additions & 8 deletions ParallaxCorrectedCubemap/src/ParallaxCorrectedCubemapApp.cpp
Expand Up @@ -21,14 +21,6 @@
POSSIBILITY OF SUCH DAMAGE.
*/

// https://seblagarde.wordpress.com/2012/11/28/siggraph-2012-talk/
// https://seblagarde.wordpress.com/2012/09/29/image-based-lighting-approaches-and-parallax-corrected-cubemap/
// http://c0de517e.blogspot.be/2015/03/being-more-wrong-parallax-corrected.html
// http://www.clicktorelease.com/blog/making-of-cruciform
// http://gpupro.blogspot.be/2013/02/gpu-pro-4-practical-planar-reflections.html
// http://learnopengl.com/#!Advanced-OpenGL/Cubemaps
// http://www.frostbite.com/wp-content/uploads/2014/11/course_notes_moving_frostbite_to_pbr.pdf

#include "cinder/app/App.h"
#include "cinder/app/RendererGl.h"
#include "cinder/gl/gl.h"
Expand Down
17 changes: 16 additions & 1 deletion README.md
Expand Up @@ -42,6 +42,17 @@ Not a particularly exciting sample but a usefull technique. It can be use to gat
The sample simply show how to use the different mipmap level of a texture to progressively reduce its size until its reasonable to copy it back to the cpu and read the results.

#### [Parallax Corrected Cubemap](/ParallaxCorrectedCubemap/src/ParallaxCorrectedCubemapApp.cpp)
Cubemap environment mapping is the most straightforward way to add reflection to a scene. Usually cubemaps reflections represent infinitely far away reflections. This sample shows how to correct the texture lookup to have proper local reflections. This is not shown in this sample but this can also be used to fake small local light sources as well. The sample uses lightmapping to keep the code simple.

Here's some interesting links on the subject :
https://seblagarde.wordpress.com/2012/11/28/siggraph-2012-talk/
https://seblagarde.wordpress.com/2012/09/29/image-based-lighting-approaches-and-parallax-corrected-cubemap/
http://c0de517e.blogspot.be/2015/03/being-more-wrong-parallax-corrected.html
http://www.clicktorelease.com/blog/making-of-cruciform
http://gpupro.blogspot.be/2013/02/gpu-pro-4-practical-planar-reflections.html
http://learnopengl.com/#!Advanced-OpenGL/Cubemaps
http://www.frostbite.com/wp-content/uploads/2014/11/course_notes_moving_frostbite_to_pbr.pdf

![Image](/Images/ParallaxCorrectedCubemap.jpg)

#### [PBR Basics](/PBRBasics/src/PBRBasicsApp.cpp)
Expand All @@ -62,13 +73,17 @@ Basic use of textures in a physically based shading workflow.
![Image](/Images/PBRTexturingBasics1.jpg)

#### [Tessellated Noise](/TessellatedNoise/src/TessellatedNoiseApp.cpp)
Useless update to the [Tessellation Shader sample](/TessellationShader/). Just playing around with noise sums in the vertex shader. Shading is absolutely wrong.

![Image](/Images/TessellatedNoise.jpg)

#### [Tessellation Shader](/TessellationShader/src/TessellationShaderApp.cpp)
Small sample implementing Philip Rideout article on ["Triangle Tessellation with OpenGL 4.0"](http://prideout.net/blog/?p=48).

![Image](/Images/TessellationShader.jpg)

#### [Viewport Array](/ViewportArray/src/ViewportArrayApp.cpp)
Small sample showing the use of ```glViewportArrayv``` and ```gl_ViewportIndex``` to render to multiple viewports.
Small sample showing the use of ```glViewportArrayv``` and ```gl_ViewportIndex``` to render to multiple viewports. ```glViewportArrayv``` is a nice way to specifies a list of viewports that can be later used in the geometry shader. By setting gl_ViewportIndex in the geometry shader you can re-direct your drawing calls to a specific viewport. Used along arrays of projections and view matrices it really ease the setup of a multiple viewport / 3d editor like view.

![Image](/Images/ViewportArray.jpg)

Expand Down
5 changes: 4 additions & 1 deletion TessellatedNoise/README.md
@@ -1,4 +1,7 @@
##### Tessellation Noise
#### [Tessellation Noise](src/TessellationNoiseApp.cpp)
Useless update to the [Tessellation Shader sample](../TessellationShader/). Just playing around with noise sums in the vertex shader. Shading is absolutely wrong.

![Image](../Images/TessellatedNoise.jpg)


##### License
Expand Down
4 changes: 3 additions & 1 deletion TessellationShader/README.md
@@ -1,4 +1,6 @@
##### Tessellation Shader
#### [Tessellation Shader](src/TessellationShaderApp.cpp)
Small sample implementing Philip Rideout article on ["Triangle Tessellation with OpenGL 4.0"](http://prideout.net/blog/?p=48).
![Image](../Images/TessellatedShader.jpg)


##### License
Expand Down
6 changes: 3 additions & 3 deletions ViewportArray/README.md
@@ -1,7 +1,7 @@
##### [Viewport Array](src/ViewportArrayApp.cpp)
Small sample showing the use of ```glViewportArrayv``` and ```gl_ViewportIndex``` to render to multiple viewports.
#### [Viewport Array](src/ViewportArrayApp.cpp)
Small sample showing the use of ```glViewportArrayv``` and ```gl_ViewportIndex``` to render to multiple viewports. ```glViewportArrayv``` is a nice way to specifies a list of viewports that can be later used in the geometry shader. By setting gl_ViewportIndex in the geometry shader you can re-direct your drawing calls to a specific viewport. Used along arrays of projections and view matrices it really ease the setup of a multiple viewport / 3d editor like view.

![Image](../Images/D3aQZUpUP4.gif)
![Image](../Images/ViewportArray.jpg)



Expand Down
4 changes: 2 additions & 2 deletions WireframeGeometryShader/README.md
@@ -1,5 +1,5 @@
##### [Wireframe Geometry Shader](src/WireframeGeometryShaderApp.cpp)
Geometry and fragment shader for solid wireframe rendering. Mostly adapted from [Florian Boesch great post on barycentric coordinates](http://codeflow.org/entries/2012/aug/02/easy-wireframe-display-with-barycentric-coordinates/).
#### [Wireframe Geometry Shader](src/WireframeGeometryShaderApp.cpp)
Geometry and fragment shader for solid wireframe rendering. Mostly adapted from [Florian Boesch great post on barycentric coordinates](http://codeflow.org/entries/2012/aug/02/easy-wireframe-display-with-barycentric-coordinates/).

![Image](../Images/YDbBnGu8UQ.gif)

Expand Down

0 comments on commit 7c4cac8

Please sign in to comment.