DRW: Move CameraTexCoFactors to engine specific storage
This is part of the effor to simplify the View struct in order to implement multiview rendering. The CameraTexCoFactors being only valid for a single view, and being only used in very few places, it make sense to move it to the engine side.
This commit is contained in:
@@ -1,4 +1,6 @@
|
||||
|
||||
#define COMMON_UNIFORMS_LIB
|
||||
|
||||
layout(std140) uniform common_block
|
||||
{
|
||||
mat4 pastViewProjectionMatrix;
|
||||
@@ -42,10 +44,8 @@ layout(std140) uniform common_block
|
||||
float rayDepth;
|
||||
float alphaHashOffset;
|
||||
float alphaHashScale;
|
||||
float pad6;
|
||||
float pad7;
|
||||
float pad8;
|
||||
float pad9;
|
||||
/* Misc */
|
||||
vec4 cameraUvScaleBias;
|
||||
};
|
||||
|
||||
/* rayType (keep in sync with ray_type) */
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
/** This describe the entire interface of the shader. */
|
||||
|
||||
#pragma BLENDER_REQUIRE(common_math_lib.glsl)
|
||||
#pragma BLENDER_REQUIRE(common_math_lib.glsl)
|
||||
|
||||
#define SURFACE_INTERFACE \
|
||||
@@ -176,13 +177,13 @@ vec3 coordinate_screen(vec3 P)
|
||||
/* Unsupported. It would make the probe camera-dependent. */
|
||||
window.xy = vec2(0.5);
|
||||
|
||||
#elif defined(WORLD_BACKGROUND)
|
||||
#elif defined(WORLD_BACKGROUND) && defined(COMMON_UNIFORMS_LIB)
|
||||
window.xy = project_point(ProjectionMatrix, viewPosition).xy * 0.5 + 0.5;
|
||||
window.xy = window.xy * CameraTexCoFactors.xy + CameraTexCoFactors.zw;
|
||||
window.xy = window.xy * cameraUvScaleBias.xy + cameraUvScaleBias.zw;
|
||||
|
||||
#else /* MESH */
|
||||
#elif defined(COMMON_UNIFORMS_LIB) /* MESH */
|
||||
window.xy = project_point(ProjectionMatrix, transform_point(ViewMatrix, P)).xy * 0.5 + 0.5;
|
||||
window.xy = window.xy * CameraTexCoFactors.xy + CameraTexCoFactors.zw;
|
||||
window.xy = window.xy * cameraUvScaleBias.xy + cameraUvScaleBias.zw;
|
||||
#endif
|
||||
return window;
|
||||
}
|
||||
|
||||
@@ -53,7 +53,7 @@ vec3 coordinate_screen(vec3 P)
|
||||
{
|
||||
vec3 window = vec3(0.0);
|
||||
window.xy = project_point(ProjectionMatrix, transform_point(ViewMatrix, P)).xy * 0.5 + 0.5;
|
||||
window.xy = window.xy * CameraTexCoFactors.xy + CameraTexCoFactors.zw;
|
||||
window.xy = window.xy * cameraUvScaleBias.xy + cameraUvScaleBias.zw;
|
||||
return window;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user