89 lines
2.3 KiB
GLSL
89 lines
2.3 KiB
GLSL
|
|
int getEyeIndex() {
|
|
#if defined(VARIANT_HAS_STEREO) && defined(FILAMENT_STEREO_INSTANCED)
|
|
return instance_index % CONFIG_STEREO_EYE_COUNT;
|
|
#elif defined(VARIANT_HAS_STEREO) && defined(FILAMENT_STEREO_MULTIVIEW)
|
|
# if defined(TARGET_VULKAN_ENVIRONMENT)
|
|
return int(gl_ViewIndex);
|
|
# else
|
|
return int(gl_ViewID_OVR);
|
|
# endif
|
|
#endif
|
|
return 0;
|
|
}
|
|
highp mat4 getViewFromWorldMatrix() {
|
|
return frameUniforms.viewFromWorldMatrix;
|
|
}
|
|
highp mat4 getWorldFromViewMatrix() {
|
|
return frameUniforms.worldFromViewMatrix;
|
|
}
|
|
highp mat4 getClipFromViewMatrix() {
|
|
return frameUniforms.clipFromViewMatrix;
|
|
}
|
|
highp mat4 getViewFromClipMatrix() {
|
|
return frameUniforms.viewFromClipMatrix;
|
|
}
|
|
#if MATERIAL_FEATURE_LEVEL > 0
|
|
highp mat4 getEyeFromViewMatrix() {
|
|
return frameUniforms.eyeFromViewMatrix[getEyeIndex()];
|
|
}
|
|
highp mat4 getEyeFromViewMatrix(int eyeIndex) {
|
|
return frameUniforms.eyeFromViewMatrix[eyeIndex];
|
|
}
|
|
#endif
|
|
highp mat4 getClipFromWorldMatrix() {
|
|
return frameUniforms.clipFromWorldMatrix[getEyeIndex()];
|
|
}
|
|
highp mat4 getClipFromWorldMatrix(int eyeIndex) {
|
|
return frameUniforms.clipFromWorldMatrix[eyeIndex];
|
|
}
|
|
highp mat4 getWorldFromClipMatrix() {
|
|
return frameUniforms.worldFromClipMatrix;
|
|
}
|
|
highp mat4 getUserWorldFromWorldMatrix() {
|
|
return frameUniforms.userWorldFromWorldMatrix;
|
|
}
|
|
float getTime() {
|
|
return frameUniforms.time;
|
|
}
|
|
highp vec4 getUserTime() {
|
|
return frameUniforms.userTime;
|
|
}
|
|
highp float getUserTimeMod(float m) {
|
|
return mod(mod(frameUniforms.userTime.x, m) + mod(frameUniforms.userTime.y, m), m);
|
|
}
|
|
highp vec2 uvToRenderTargetUV(const highp vec2 uv) {
|
|
#if defined(TARGET_METAL_ENVIRONMENT) || defined(TARGET_VULKAN_ENVIRONMENT) || defined(TARGET_WEBGPU_ENVIRONMENT)
|
|
return vec2(uv.x, 1.0 - uv.y);
|
|
#else
|
|
return uv;
|
|
#endif
|
|
}
|
|
highp vec4 getResolution() {
|
|
return frameUniforms.resolution;
|
|
}
|
|
highp vec3 getWorldCameraPosition() {
|
|
return frameUniforms.worldFromViewMatrix[3].xyz;
|
|
}
|
|
highp vec3 getWorldOffset() {
|
|
return getUserWorldFromWorldMatrix()[3].xyz;
|
|
}
|
|
float getExposure() {
|
|
return frameUniforms.exposure;
|
|
}
|
|
float getEV100() {
|
|
return frameUniforms.ev100;
|
|
}
|
|
highp vec4 getMaterialGlobal0() {
|
|
return frameUniforms.custom[0];
|
|
}
|
|
highp vec4 getMaterialGlobal1() {
|
|
return frameUniforms.custom[1];
|
|
}
|
|
highp vec4 getMaterialGlobal2() {
|
|
return frameUniforms.custom[2];
|
|
}
|
|
highp vec4 getMaterialGlobal3() {
|
|
return frameUniforms.custom[3];
|
|
}
|