Skip to content

linlinbest/Project5-Vulkan-Grass-Rendering

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Vulkan Grass Rendering

University of Pennsylvania, CIS 565: GPU Programming and Architecture, Project 5

  • Zhuohao Lin
  • Tested on: Windows 10, i7-10875H @ 2.30GHz 16GB, NVIDIA Grforce RTX 2060 6GB (personal machine)

Overview

This project implements real-time grass rendering based on a paper about responsive real-time rendering for general 3D scenes.

Features

Physics Simulation

I apply recovery, gravity and wind forces on the grass in this project. The comparison between using forces and not using forces is shown below.

Without Forces With Forces

Optimizations by Culling

By culling grass based on orientation, view frustrum and distance, the program gets quite obvious FPS improvement.

Orientation Culling:

View Frustrum Culling:

Distance Culling:

Performance Analysis

How performance of the renderer change with different number of grass blades

The FPS drops as the number of grass blades increases. This is expected since there are more data needs to be computed with more grass blades.

Improvement from Culling

All of the data below are derived under 640 x 480 resolution with 213 grass blades.

As we can see, all of culling methods contribute decent amount of performance improvements, especially for the orientation culling. This is simply because I set the threshold for culling low.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C++ 91.0%
  • CMake 5.1%
  • GLSL 3.6%
  • C 0.3%