Program developed for my Bachelor's Thesis on tiled front to back rendering of grass blades using a compute shader.
GLSL C++ C Batchfile
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
add
data
.gitignore
.gitmodules
CMakeLists.txt
README.md
background.glsl
computeShaderGrass.glsl
csResultShader.glsl
cs_grass_result_screenshot_1.png
groundShader.glsl
main.cpp
obj.cpp
obj.h
pch.cpp
pch.h
phong.glsl
random.glsl.h
renderer.glsl.h
sync-sample.bat
thesis.pdf
tonemap.glsl

README.md

lighter-app-grass

Program developed for my Bachelor's Thesis on tiled front to back rendering of grass blades using a compute shader.

Abstract

This thesis describes the implementation of a new method of rendering grass in real time. The approach uses a compute shader to draw every single grass blade in parallel by separating the screen into tiles, each of them worked on by a work group of 32 threads. The grass blades in each tile are rendered front to back to avoid using depth tests for obstruction and be able to only draw visible parts of grass blades. The developed program produces a good approximation for medium to far distance grass at a reasonable speed. The implementation can't compete with image-based methods but with further optimizations may prove valid as an alternative to geometry-based grass for medium to far distances.

The thesis can be found here (German)

A video showcasing the implementation cann be found at (https://vimeo.com/189309577)

screenshot of the implementation

The program is based upon https://github.com/tszirr/lighter-app/tree/f7cec6d0a04f8d92d007136ca0f1e280eddafc7f