## RayTracing – Adding Reflection and Refraction

The other advantage of ray-tracing is that, by extending the idea of ray propagation, we can very easily simulate effects like reflection …

## RayTracing – Implementing the Raytracing Algorithm

https://www.scratchapixel.com/lessons/3d-basic-rendering/introduction-to-ray-tracing/implementing-the-raytracing-algorithm     We have covered everything there is to say! We are now prepared to write our first ray-tracer. You should …

## RayTracing – Raytracing Algorithm in a Nutshell

https://www.scratchapixel.com/lessons/3d-basic-rendering/introduction-to-ray-tracing/raytracing-algorithm-in-a-nutshell     The phenomena described by Ibn al-Haytham explains why we see objects. Two interesting remarks can be made based on …

## RayTracing – How Does It Work?

https://www.scratchapixel.com/lessons/3d-basic-rendering/introduction-to-ray-tracing/how-does-it-work     To begin this lesson, we will explain how a three-dimensional scene is made into a viewable two-dimensional image. Once …

## Managing Transformations in Hierarchy

Introduction     One of the most fundamental aspects of 3D engine design is management of spatial relationship between objects. The most …

## Object Space Ambient Occlusion for Molecular Dynamics (OSAO)

http://http.developer.nvidia.com/GPUGems2/gpugems2_chapter14.html Michael Bunnell NVIDIA Corporation In this chapter we describe a new technique for computing diffuse light transfer and show how it …

## Screen Space Ambient Occlusion(SSAO)

BACKGROUND Ambient occlusion is an approximation of the amount by which a point on a surface is occluded by the surrounding geometry, …

## Defered/Forward Rendering

http://www.cnblogs.com/polobymulberry/p/5126892.html 1. rendering path的技术基础 在介绍各种光照渲染方式之前，首先必须介绍一下现代的图形渲染管线。这是下面提到的几种Rendering Path的技术基础。 目前主流的游戏和图形渲染引擎，包括底层的API（如DirectX和OpenGL）都开始支持现代的图形渲染管线。现代的渲染管线也称为可编程管线（Programmable Pipeline），简单点说就是将以前固定管线写死的部分（比如顶点的处理，像素颜色的处理等等）变成在GPU上可以进行用户自定义编程的部分，好处就是用户可以自由发挥的空间增大，缺点就是必须用户自己实现很多功能。 下面简单介绍下可编程管线的流程。以OpenGL绘制一个三角形举例。首先用户指定三个顶点传给Vertex Shader。然后用户可以选择是否进行Tessellation Shader（曲面细分可能会用到）和Geometry Shader（可以在GPU上增删几何信息）。紧接着进行光栅化，再将光栅化后的结果传给Fragment Shader进行pixel级别的处理。最后将处理的像素传给FrameBuffer并显示到屏幕上。 2. 几种常用的Rendering Path Rendering Path其实指的就是渲染场景中光照的方式。由于场景中的光源可能很多，甚至是动态的光源。所以怎么在速度和效果上达到一个最好的结果确实很困难。以当今的显卡发展为契机，人们才衍生出了这么多的Rendering Path来处理各种光照。 2.1 Forward Rendering …