realtime-clouds

module
v0.0.0-...-00121b1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 7, 2020 License: MIT

README

realtime-clouds

Implementation of the volumetric cloud rendering approach based on the presentation The real-time volumetric cloudscapes of Horizon:Zero Dawn by Andrew Schneider held at SIGGRAPH 2015 as part of the Advances in real-time rendering course.

Requirements

This project requires a GPU with OpenGL 4.3+ support.

The following dependencies depend on cgo. To make them work under Windows a compatible version of mingw is necessary. Information can be found here. In my case I used x86_64-7.2.0-posix-seh-rt_v5-rev1. After installing the right version of mingw you can continue by installing the dependencies that follow next.

This project depends on glfw for creating a window and providing a rendering context, go-gl/gl for providing bindings to OpenGL and go-gl/mathgl provides vector and matrix math for OpenGL.

go get -u github.com/go-gl/glfw/v3.2/glfw
go get -u github.com/go-gl/gl/v4.3-core/gl
go get -u github.com/go-gl/mathgl/mgl32

After getting all dependencies the project should work without any errors.

Theory

TODO

Directories

Path Synopsis
cmd
pkg
buffer/fbo
Package fbo is a buffer that can hold different kind of textures.
Package fbo is a buffer that can hold different kind of textures.
buffer/ibo
Package ibo contains a buffer with indices of a vertex array.
Package ibo contains a buffer with indices of a vertex array.
buffer/ssbo
Package ssbo is a general purpose buffer that can hold any data.
Package ssbo is a general purpose buffer that can hold any data.
buffer/vao
Package vao is a buffer that uses vertex buffer objects and index buffer objects.
Package vao is a buffer that uses vertex buffer objects and index buffer objects.
buffer/vbo
Package vbo contains a buffer with vertex data.
Package vbo contains a buffer with vertex data.
cgm
core/gl
Package core provides an abstraction layer on top of OpenGL.
Package core provides an abstraction layer on top of OpenGL.
core/interaction
Package interaction handles the user interaction with mouse and keyboard.
Package interaction handles the user interaction with mouse and keyboard.
core/shader
Package shader provides a way to load shader programs, adding renderable objects to the shader and updating values of the shader as well as executing the shader.
Package shader provides a way to load shader programs, adding renderable objects to the shader and updating values of the shader as well as executing the shader.
core/window
Package engine provides an abstraction layer on top of OpenGL.
Package engine provides an abstraction layer on top of OpenGL.
gui
scene/camera/fps
Package camera provides implementations of different camera models.
Package camera provides implementations of different camera models.
scene/camera/trackball
Package camera provides implementations of different camera models.
Package camera provides implementations of different camera models.
view/geometry
Package geometry provides geometric primitives that can be used in meshes.
Package geometry provides geometric primitives that can be used in meshes.
view/geometry/cube
Package geometry provides geometric primitives that can be used in meshes.
Package geometry provides geometric primitives that can be used in meshes.
view/geometry/quad
Package geometry provides geometric primitives that can be used in meshes.
Package geometry provides geometric primitives that can be used in meshes.
view/image/image2d
Package texture provides classes for creating and storing images.
Package texture provides classes for creating and storing images.
view/mesh
Package mesh is used for creating meshes from geometry and textures.
Package mesh is used for creating meshes from geometry and textures.
view/mesh/box
Package box is used for creating a simple box mesh.
Package box is used for creating a simple box mesh.
view/mesh/plane
Package box is used for creating a simple box mesh.
Package box is used for creating a simple box mesh.
view/texture
Package texture provides classes for creating and storing images and textures.
Package texture provides classes for creating and storing images and textures.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL