All Projects → Master-J → Decalco

Master-J / Decalco

Licence: mit
Shader based decal solution for the Godot game engine

Labels

Projects that are alternatives of or similar to Decalco

Cactus
A Modern Diablo II Version Switcher (Contains: Singling)
Stars: ✭ 83 (-22.43%)
Mutual labels:  glsl
Kinectazuredkprogramming
Samples about Kinect Azure DK programming
Stars: ✭ 92 (-14.02%)
Mutual labels:  glsl
Webassembly Raytracer
a performance comparison of a simple raytracer in JavaScript, asm.js, WebAssembly, and GLSL
Stars: ✭ 102 (-4.67%)
Mutual labels:  glsl
Cezanne
This is a project showing varied shading algorithms with a simple apple.
Stars: ✭ 85 (-20.56%)
Mutual labels:  glsl
Medium
Progressive WebGL toolkit for art.
Stars: ✭ 90 (-15.89%)
Mutual labels:  glsl
Unity3dprojectionmapping
Projection Mapping Tests and Shaders using Unity 3D
Stars: ✭ 94 (-12.15%)
Mutual labels:  glsl
Noodlesplate
Offline Shader Editor with many cool features
Stars: ✭ 79 (-26.17%)
Mutual labels:  glsl
Gdx Vfx
LibGDX post-processing visual effects
Stars: ✭ 105 (-1.87%)
Mutual labels:  glsl
Sky Shader
☀️ WebGL sky and sun shader editor
Stars: ✭ 90 (-15.89%)
Mutual labels:  glsl
Glsleditor
Simple WebGL Fragment Shader Editor
Stars: ✭ 1,345 (+1157.01%)
Mutual labels:  glsl
Shadertutorialseries
source code for the YouTube series
Stars: ✭ 86 (-19.63%)
Mutual labels:  glsl
Threejs Starter
Stars: ✭ 89 (-16.82%)
Mutual labels:  glsl
Unityindieeffects
True Image Effects for Unity Indie
Stars: ✭ 96 (-10.28%)
Mutual labels:  glsl
Threejs Es6 Webpack Starter
Three.js ES6 starter project with a sane webpack configuration
Stars: ✭ 85 (-20.56%)
Mutual labels:  glsl
Bos In Touchdesigner
Stars: ✭ 102 (-4.67%)
Mutual labels:  glsl
Sildurs Shaders.github.io
Sildurs shaders website
Stars: ✭ 84 (-21.5%)
Mutual labels:  glsl
Ar Sdk
DuMix AR SDK for Developer
Stars: ✭ 93 (-13.08%)
Mutual labels:  glsl
D2 Plugy Qol
QOL Mod Pack for Diablo II.
Stars: ✭ 105 (-1.87%)
Mutual labels:  glsl
Osu Resources
assets used by osu!
Stars: ✭ 102 (-4.67%)
Mutual labels:  glsl
Cs2x
Transpiles a C# subset to non .NET languages and runtimes. (Powered by Roslyn)
Stars: ✭ 97 (-9.35%)
Mutual labels:  glsl

DecalCo

What is DecalCO?

DecalCO is a shader based solution for the Godot game engine. Decals are a great tool used to add details to a 3d object without having to add more details to its geometry or using really large texture maps.

You can use decal to add things like bullet holes, blood splashes, water puddles in your scenes.

System requirements

Godot game engine version 3.2. DecalCO should work with 3.1 version of the Godot game engine too but not confirmed yet. The 3.0 version of the Godot game engine isn't supported because of an engine bug concerning the depth buffer.

Features

DecalCO's decals offer the following features :

  • Texture mapping (albedo, specular, emission, normal map)
  • Flipbook animation (useful to animate things like rain drops)
  • Shadow mapping
  • Multiple lights.

Intallation

  • Download DecalCO's source code
  • Unzip it and copy the "decalco" folder into your Godot's project folder.

DecalCO is also available on the Godot game engine's Asset Library, you can also download and install it directly from the engine's editor.

How to use DecalCO?

To add a new decal to your scene, create a new MeshInstance node and give it a cube mesh and turn off it's "cast shadows" property. image

Next, in the MeshInstance's material slot, create a new shader material and load the decal shader. image

DecalCO's decals are projected along their negative local Z axis, make sure this axis is perpendicular (like in the screenshot below) with the surface the decal is projected on to avoid wrong projections. projection

If you want to project a decal in a corner, you can try doing the following : projectionAngle

In order to fix projections artefacs as much as possible (see example bellow), try keeping the decal as thin as possible by scaling it down on the Z axis. Here, the decal's projection box is large, objects passing near it will interfere with it's projection. image By making it thiner, the artefac is now gone. image

As the decal's logic is happening in a shader, you can save your decal's materials in your project as a resource and share it accros multiple decals.

A demo scene showcasing how you can use this plugin and its features is available in the examples folder. demo

Performance

As the decals are shader-based, they should be pretty efficient. They also can share the same material, so the material count dedicated to them can be limited to one material per decal type.

Known issues and limitations

  • GLES2.0 projections update with a delay when the camera moves.
  • GLES2.0 normal maps may look considerably worse than they do with GLES3.0 depending on viewing angle and light setup.
  • GLES2.0 in DecalCo uses DEPTH_TEXTURE which may not work on some old hardware; especially mobile, as stated in the official documentation.
  • PBR lighting not supported because of some hacks necessary for the shader to work, PBR could be done if things like the iradiance texture is exposed to the light shader.
  • Specular lighting only works with a single light.
  • Decal wrapping on sharp angles produce ugly results, this could be solved by cliping the decal on those spots but will require to compute the face normal using the screen texture which would make the shader even less efficient than it already is.
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].