Code Monkey home page Code Monkey logo

3d-terrain's People

Contributors

rwxzig avatar xfrednet avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

Forkers

vb6hobbyst7

3d-terrain's Issues

Environment objects

  • Add some complex models to the terrain, maybe grass or the tree from ZAAP?
  • Place them on terrain

Lighting setup

  • Diffuse lighting
  • Specular lighting
  • Light attenuation
  • Multi light support

Water rendering

  • Render a alpha blended water layer
  • Add a wave motion
  • Adjust normal's to the new position
  • Add light distortion of the area rendered behind.
  • Add reflection
  • Add refraction

Reference

Particle system

Example of an old but super cool system: https://www.youtube.com/watch?v=JK1aV_mzH3A

So what I imagine is a component called ParticleSpawner or something like this. This component has a bunch of settings similar to Godots system. I would at least like the following:

  • texture
  • life_time (float)
  • speed & direction (vec3)
  • scale (float)
  • emitting (bool)

Having more options would be cooler of course!

Than we have a ParticleRenderingSystem that runs after the TerrainRenderingSystem and WaterRenderingSystem with alpha blending enabled. This basically get's every entity with a Transformation object and a ParticleSpawner that is emitting particles and renders them.

Some notes / thoughts:

I know that ThinMatrix has some videos that go into this direction.

I would basically think that we have one VBO that has a bunch of squares consisting out of two triangles. Each square has an particle ID from 0 to n. The rendering reuses this VBO for all particles. It just changes the used texture and origin point using uniforms. Note that we should rotate the squares them self to be orientated to the camera. This definitely needs some uniform magic ๐Ÿ˜… .

Tasks

  • Load textures
  • Create particle component
  • Alpha blending
  • Maybe: Motion along calculated smooth curves in shaders?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.