summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authortetrapod00 <145553014+tetrapod00@users.noreply.github.com>2024-08-18 14:07:12 -0700
committertetrapod00 <145553014+tetrapod00@users.noreply.github.com>2024-08-19 21:49:31 -0700
commitabe8d2c7195c70ae2a4d37e0049f15d78ed649a8 (patch)
tree89d018fcc8aa9ec38de08ae998d0eeb9fd4d23cd
parent1bd740d18d714f815486b04bf4c6154ef6c355d9 (diff)
downloadredot-engine-abe8d2c7195c70ae2a4d37e0049f15d78ed649a8.tar.gz
Document conversion function needed for normal texture in CompositorEffect
-rw-r--r--doc/classes/CompositorEffect.xml11
1 files changed, 11 insertions, 0 deletions
diff --git a/doc/classes/CompositorEffect.xml b/doc/classes/CompositorEffect.xml
index 76a3887918..9ac54edb11 100644
--- a/doc/classes/CompositorEffect.xml
+++ b/doc/classes/CompositorEffect.xml
@@ -57,6 +57,17 @@
var render_scene_buffers : RenderSceneBuffersRD = render_data.get_render_scene_buffers()
var roughness_buffer = render_scene_buffers.get_texture("forward_clustered", "normal_roughness")
[/codeblock]
+ The raw normal and roughness buffer is stored in an optimized format, different than the one available in Spatial shaders. When sampling the buffer, a conversion function must be applied. Use this function, copied from [url=https://github.com/godotengine/godot/blob/da5f39889f155658cef7f7ec3cc1abb94e17d815/servers/rendering/renderer_rd/shaders/forward_clustered/scene_forward_clustered_inc.glsl#L334-L341]here[/url]:
+ [codeblock]
+ vec4 normal_roughness_compatibility(vec4 p_normal_roughness) {
+ float roughness = p_normal_roughness.w;
+ if (roughness &gt; 0.5) {
+ roughness = 1.0 - roughness;
+ }
+ roughness /= (127.0 / 255.0);
+ return vec4(normalize(p_normal_roughness.xyz * 2.0 - 1.0) * 0.5 + 0.5, roughness);
+ }
+ [/codeblock]
</member>
<member name="needs_separate_specular" type="bool" setter="set_needs_separate_specular" getter="get_needs_separate_specular">
If [code]true[/code] this triggers specular data being rendered to a separate buffer and combined after effects have been applied, only applicable for the Forward+ renderer.