--------- beginning with launcher debug Info: Launcher version: edelweiss-20231129-3635f53-feat/secure_modpacks_downloads Info: Architecture: arm64 Info: Device model: Xiaomi 23043RP34C Info: API version: 33 Info: Selected Minecraft version: 1.20.2 Info: Custom Java arguments: "" Added custom env: TMPDIR=/data/user/0/net.kdt.pojavlaunch.debug/cache Added custom env: AWTSTUB_WIDTH=1728 Added custom env: FORCE_VSYNC=false Added custom env: POJAV_NATIVEDIR=/data/app/~~ElcN6xIDHtjDFrutGBGaMA==/net.kdt.pojavlaunch.debug-MbBpRW61rF4VwTjSiH9tKQ==/lib/arm64 Added custom env: LIBGL_MIPMAP=3 Added custom env: allow_higher_compat_version=true Added custom env: MESA_GLSL_CACHE_DIR=/data/user/0/net.kdt.pojavlaunch.debug/cache Added custom env: HOME=/storage/emulated/0/Android/data/net.kdt.pojavlaunch.debug/files Added custom env: PATH=/data/user/0/net.kdt.pojavlaunch.debug/runtimes/jre17-arm64-20210825-release.tar.xz/bin:/product/bin:/apex/com.android.runtime/bin:/apex/com.android.art/bin:/system_ext/bin:/system/bin:/system/xbin:/odm/bin:/vendor/bin:/vendor/xbin Added custom env: LIBGL_NOINTOVLHACK=1 Added custom env: force_glsl_extensions_warn=true Added custom env: LIBGL_NORMALIZE=1 Added custom env: LIBGL_VGPU_DUMP=1 Added custom env: POJAV_VSYNC_IN_ZINK=1 Added custom env: LD_LIBRARY_PATH=/data/user/0/net.kdt.pojavlaunch.debug/runtimes/jre17-arm64-20210825-release.tar.xz/lib/jli:/data/user/0/net.kdt.pojavlaunch.debug/runtimes/jre17-arm64-20210825-release.tar.xz/lib:/system/lib64:/vendor/lib64:/vendor/lib64/hw:/data/app/~~ElcN6xIDHtjDFrutGBGaMA==/net.kdt.pojavlaunch.debug-MbBpRW61rF4VwTjSiH9tKQ==/lib/arm64 Added custom env: LIBGL_NOERROR=1 Added custom env: POJAV_RENDERER=opengles2 Added custom env: LIBGL_ES=2 Added custom env: VTEST_SOCKET_NAME=/data/user/0/net.kdt.pojavlaunch.debug/cache/.virgl_test Added custom env: MESA_LOADER_DRIVER_OVERRIDE=zink Added custom env: JAVA_HOME=/data/user/0/net.kdt.pojavlaunch.debug/runtimes/jre17-arm64-20210825-release.tar.xz Added custom env: allow_glsl_extension_directive_midshader=true Added custom env: AWTSTUB_HEIGHT=1080 Initialising gl4es v1.1.5 built on Sep 27 2023 17:42:09 Using GLES 2.0 backend loaded: libGLESv2.so loaded: libEGL.so Using GLES 2.0 backend Hardware Full NPOT detected and used FBO are in core, and so used PointSprite are in core, and so used CubeMap are in core, and so used BlendColor is in core, and so used Blend Subtract is in core, and so used Blend Function and Equation Separation is in core, and so used Texture Mirrored Repeat is in core, and so used Extension GL_OES_element_index_uint detected and used Extension GL_OES_packed_depth_stencil detected and used Extension GL_OES_depth24 detected and used Extension GL_OES_rgb8_rgba8 detected and used Extension GL_EXT_texture_format_BGRA8888 detected and used Extension GL_OES_depth_texture detected and used Extension GL_OES_texture_stencil8 detected and used Extension GL_OES_texture_float detected and used Extension GL_OES_texture_half_float detected and used Extension GL_EXT_color_buffer_float detected and used Extension GL_EXT_color_buffer_half_float detected and used high precision float in fragment shader available and used Max vertex attrib: 32 Extension GL_OES_standard_derivatives detected and used Extension GL_ARM_shader_framebuffer_fetch detected and used Extension GL_OES_get_program_binary detected and used Number of supported Program Binary Format: 1 Max texture size: 16384 Max Varying Vector: 31 Texture Units: 16/16 (hardware: 16), Max lights: 8, Max planes: 6 Extension GL_EXT_texture_filter_anisotropic detected and used Max Anisotropic filtering: 16 Hardware vendor is Qualcomm GLSL 300 es supported GLSL 310 es supported and used GLSL 320 es supported Max Color Attachments: 8 / Draw buffers: 8 sRGB surface supported EGLImage to Texture2D supported EGLImage to RenderBuffer supported ignore MipMap glGetError() always return GL_NOERROR Targeting OpenGL 2.1 No hack in shader converter to define overloaded function with int Not trying to batch small subsequent glDrawXXXX try to use VBO Force texture for Attachment color0 on FBO Hack to trigger a SwapBuffers when a Full Framebuffer Blit on default FBO is done Force normals to be normalized on FPE shaders Dump the content of VGPU shader conversion glX Will try to recycle EGL Surface Current folder is:/ --------- beginning of main I/jrelog (25588): dlopen libgl4es_114.so success I/jrelog (25588): dlopen /data/user/0/net.kdt.pojavlaunch.debug/runtimes/jre17-arm64-20210825-release.tar.xz/lib/libjli.so success I/jrelog (25588): dlopen libjvm.so failed: dlopen failed: library "libjvm.so" not found I/jrelog (25588): dlopen /data/user/0/net.kdt.pojavlaunch.debug/runtimes/jre17-arm64-20210825-release.tar.xz/lib/server/libjvm.so success I/jrelog (25588): dlopen /data/user/0/net.kdt.pojavlaunch.debug/runtimes/jre17-arm64-20210825-release.tar.xz/lib/libverify.so success I/jrelog (25588): dlopen /data/user/0/net.kdt.pojavlaunch.debug/runtimes/jre17-arm64-20210825-release.tar.xz/lib/libjava.so success I/jrelog (25588): dlopen /data/user/0/net.kdt.pojavlaunch.debug/runtimes/jre17-arm64-20210825-release.tar.xz/lib/libnet.so success I/jrelog (25588): dlopen /data/user/0/net.kdt.pojavlaunch.debug/runtimes/jre17-arm64-20210825-release.tar.xz/lib/libnio.so success I/jrelog (25588): dlopen /data/user/0/net.kdt.pojavlaunch.debug/runtimes/jre17-arm64-20210825-release.tar.xz/lib/libawt.so success I/jrelog (25588): dlopen /data/user/0/net.kdt.pojavlaunch.debug/runtimes/jre17-arm64-20210825-release.tar.xz/lib/libfreetype.so success I/jrelog (25588): dlopen /data/user/0/net.kdt.pojavlaunch.debug/runtimes/jre17-arm64-20210825-release.tar.xz/lib/libfontmanager.so success I/jrelog (25588): dlopen /data/user/0/net.kdt.pojavlaunch.debug/runtimes/jre17-arm64-20210825-release.tar.xz/lib/libawt.so success I/jrelog (25588): dlopen /data/user/0/net.kdt.pojavlaunch.debug/runtimes/jre17-arm64-20210825-release.tar.xz/lib/server/libjvm.so success I/jrelog (25588): dlopen /data/user/0/net.kdt.pojavlaunch.debug/runtimes/jre17-arm64-20210825-release.tar.xz/lib/server/libjsig.so success I/jrelog (25588): dlopen /data/user/0/net.kdt.pojavlaunch.debug/runtimes/jre17-arm64-20210825-release.tar.xz/lib/libattach.so success I/jrelog (25588): dlopen /data/user/0/net.kdt.pojavlaunch.debug/runtimes/jre17-arm64-20210825-release.tar.xz/lib/libjavajpeg.so success I/jrelog (25588): dlopen /data/user/0/net.kdt.pojavlaunch.debug/runtimes/jre17-arm64-20210825-release.tar.xz/lib/libsyslookup.so success I/jrelog (25588): dlopen /data/user/0/net.kdt.pojavlaunch.debug/runtimes/jre17-arm64-20210825-release.tar.xz/lib/libfontmanager.so success I/jrelog (25588): dlopen /data/user/0/net.kdt.pojavlaunch.debug/runtimes/jre17-arm64-20210825-release.tar.xz/lib/libj2pcsc.so success I/jrelog (25588): dlopen /data/user/0/net.kdt.pojavlaunch.debug/runtimes/jre17-arm64-20210825-release.tar.xz/lib/libmanagement.so success I/jrelog (25588): dlopen /data/user/0/net.kdt.pojavlaunch.debug/runtimes/jre17-arm64-20210825-release.tar.xz/lib/libjaas.so success I/jrelog (25588): dlopen /data/user/0/net.kdt.pojavlaunch.debug/runtimes/jre17-arm64-20210825-release.tar.xz/lib/libfreetype.so success I/jrelog (25588): dlopen /data/user/0/net.kdt.pojavlaunch.debug/runtimes/jre17-arm64-20210825-release.tar.xz/lib/libjli.so success I/jrelog (25588): dlopen /data/user/0/net.kdt.pojavlaunch.debug/runtimes/jre17-arm64-20210825-release.tar.xz/lib/libjimage.so success I/jrelog (25588): dlopen /data/user/0/net.kdt.pojavlaunch.debug/runtimes/jre17-arm64-20210825-release.tar.xz/lib/libjsig.so success I/jrelog (25588): dlopen /data/user/0/net.kdt.pojavlaunch.debug/runtimes/jre17- arm64-20210825-release.tar.xz/lib/libj2gss.so success I/jrelog (25588): dlopen /data/user/0/net.kdt.pojavlaunch.debug/runtimes/jre17-arm64-20210825-release.tar.xz/lib/libnet.so success I/jrelog (25588): dlopen /data/user/0/net.kdt.pojavlaunch.debug/runtimes/jre17-arm64-20210825-release.tar.xz/lib/libjava.so success I/jrelog (25588): dlopen /data/user/0/net.kdt.pojavlaunch.debug/runtimes/jre17-arm64-20210825-release.tar.xz/lib/libnio.so success I/jrelog (25588): dlopen /data/user/0/net.kdt.pojavlaunch.debug/runtimes/jre17-arm64-20210825-release.tar.xz/lib/libprefs.so success I/jrelog (25588): dlopen /data/user/0/net.kdt.pojavlaunch.debug/runtimes/jre17-arm64-20210825-release.tar.xz/lib/libmanagement_ext.so success I/jrelog (25588): dlopen /data/user/0/net.kdt.pojavlaunch.debug/runtimes/jre17-arm64-20210825-release.tar.xz/lib/libj2pkcs11.so success I/jrelog (25588): dlopen /data/user/0/net.kdt.pojavlaunch.debug/runtimes/jre17-arm64-20210825-release.tar.xz/lib/libdt_socket.so success I/jrelog (25588): dlopen /data/user/0/net.kdt.pojavlaunch.debug/runtimes/jre17-arm64-20210825-release.tar.xz/lib/libjdwp.so success I/jrelog (25588): dlopen /data/user/0/net.kdt.pojavlaunch.debug/runtimes/jre17-arm64-20210825-release.tar.xz/lib/libzip.so success I/jrelog (25588): dlopen /data/user/0/net.kdt.pojavlaunch.debug/runtimes/jre17-arm64-20210825-release.tar.xz/lib/libsctp.so success I/jrelog (25588): dlopen /data/user/0/net.kdt.pojavlaunch.debug/runtimes/jre17-arm64-20210825-release.tar.xz/lib/libmlib_image.so success I/jrelog (25588): dlopen /data/user/0/net.kdt.pojavlaunch.debug/runtimes/jre17-arm64-20210825-release.tar.xz/lib/libextnet.so success I/jrelog (25588): dlopen /data/user/0/net.kdt.pojavlaunch.debug/runtimes/jre17-arm64-20210825-release.tar.xz/lib/libinstrument.so success I/jrelog (25588): dlopen /data/user/0/net.kdt.pojavlaunch.debug/runtimes/jre17-arm64-20210825-release.tar.xz/lib/libmanagement_agent.so success I/jrelog (25588): dlopen /data/user/0/net.kdt.pojavlaunch.debug/runtimes/jre17-arm64-20210825-release.tar.xz/lib/librmi.so success I/jrelog (25588): dlopen /data/user/0/net.kdt.pojavlaunch.debug/runtimes/jre17-arm64-20210825-release.tar.xz/lib/liblcms.so success I/jrelog (25588): dlopen /data/user/0/net.kdt.pojavlaunch.debug/runtimes/jre17-arm64-20210825-release.tar.xz/lib/libjawt.so success I/jrelog (25588): dlopen /data/user/0/net.kdt.pojavlaunch.debug/runtimes/jre17-arm64-20210825-release.tar.xz/lib/libverify.so success I/jrelog (25588): dlopen /data/user/0/net.kdt.pojavlaunch.debug/runtimes/jre17-arm64-20210825-release.tar.xz/lib/libawt_headless.so success I/jrelog (25588): dlopen /data/user/0/net.kdt.pojavlaunch.debug/runtimes/jre17-arm64-20210825-release.tar.xz/lib/libawt_xawt.so success I/jrelog (25588): dlopen /data/app/~~ElcN6xIDHtjDFrutGBGaMA==/net.kdt.pojavlaunch.debug-MbBpRW61rF4VwTjSiH9tKQ==/lib/arm64/libopenal.so success I/jrelog (25588): Done processing args I/jrelog (25588): Found JLI lib I/jrelog (25588): Calling JLI_Launch 2023-12-09 17:40:00,876 main ERROR appender Console has no parameter that matches element Policies [17:40:01] [main/WARN]: Did not find udev library in operating system. Some features may not work. [17:40:01] [main/WARN]: File not found or not readable: /proc/stat [17:40:01] [main/WARN]: Failed to get system info for Microarchitecture java.lang.NullPointerException: Cannot invoke "String.toUpperCase()" because "this.cpuVendor" is null at oshi.hardware.CentralProcessor$ProcessorIdentifier.queryMicroarchitecture(CentralProcessor.java:825) ~[oshi-core-6.4.5.jar:6.4.5] at oshi.util.Memoizer$1.get(Memoizer.java:61) ~[oshi-core-6.4.5.jar:6.4.5] at oshi.hardware.CentralProcessor$ProcessorIdentifier.getMicroarchitecture(CentralProcessor.java:816) ~[oshi-core-6.4.5.jar:6.4.5] at ab.a(SourceFile:66) ~[1.20.2.jar:?] at ab.a(SourceFile:128) ~[1.20.2.jar:?] at ab.c(SourceFile:75) ~[1.20.2.jar:?] at ab.a(SourceFile:82) ~[1.20.2.jar:?] at ab.a(SourceFile:75) ~[1.20.2.jar:?] at ab.c(SourceFile:52) ~[1.20.2.jar:?] at ab.a(SourceFile:82) ~[1.20.2.jar:?] at ab.(SourceFile:52) ~[1.20.2.jar:?] at o.(SourceFile:34) ~[1.20.2.jar:?] at o.h(SourceFile:274) ~[1.20.2.jar:?] at net.minecraft.client.main.Main.main(SourceFile:167) ~[1.20.2.jar:?] [17:40:05] [Datafixer Bootstrap/INFO]: 192 Datafixer optimizations took 181 milliseconds [17:40:07] [Render thread/INFO]: [STDERR]: [LWJGL] Failed to load a library. Possible solutions: a) Add the directory that contains the shared library to -Djava.library.path or -Dorg.lwjgl.librarypath. b) Add the JAR that contains the shared library to the classpath. [17:40:07] [Render thread/INFO]: [STDERR]: [LWJGL] Enable debug mode with -Dorg.lwjgl.util.Debug=true for better diagnostics. [17:40:07] [Render thread/INFO]: [STDERR]: [LWJGL] Enable the SharedLibraryLoader debug mode with -Dorg.lwjgl.util.DebugLoader=true for better diagnostics. [17:40:07] [Render thread/INFO]: Environment: Environment[accountsHost=https://api.mojang.com, sessionHost=https://sessionserver.mojang.com, servicesHost=https://api.minecraftservices.com, name=PROD] [17:40:08] [Render thread/INFO]: Setting user: Idrisu Registered forkAndExec [17:40:08] [Render thread/ERROR]: Error parsing option value off for option Fullscreen: Not a boolean: "off" [17:40:08] [Render thread/INFO]: Backend library: LWJGL version 3.3.1 SNAPSHOT Initialising gl4es v1.1.5 built on Sep 27 2023 17:42:09 Using GLES 2.0 backend loaded: libGLESv2.so loaded: libEGL.so Using GLES 2.0 backend Hardware Full NPOT detected and used FBO are in core, and so used PointSprite are in core, and so used CubeMap are in core, and so used BlendColor is in core, and so used Blend Subtract is in core, and so used Blend Function and Equation Separation is in core, and so used Texture Mirrored Repeat is in core, and so used Extension GL_OES_element_index_uint detected and used Extension GL_OES_packed_depth_stencil detected and used Extension GL_OES_depth24 detected and used Extension GL_OES_rgb8_rgba8 detected and used Extension GL_EXT_texture_format_BGRA8888 detected and used Extension GL_OES_depth_texture detected and used Extension GL_OES_texture_stencil8 detected and used Extension GL_OES_texture_float detected and used Extension GL_OES_texture_half_float detected and used Extension GL_EXT_color_buffer_float detected and used Extension GL_EXT_color_buffer_half_float detected and used high precision float in fragment shader available and used Max vertex attrib: 32 Extension GL_OES_standard_derivatives detected and used Extension GL_ARM_shader_framebuffer_fetch detected and used Extension GL_OES_get_program_binary detected and used Number of supported Program Binary Format: 1 Max texture size: 16384 Max Varying Vector: 31 Texture Units: 16/16 (hardware: 16), Max lights: 8, Max planes: 6 Extension GL_EXT_texture_filter_anisotropic detected and used Max Anisotropic filtering: 16 Hardware vendor is Qualcomm GLSL 300 es supported GLSL 310 es supported and used GLSL 320 es supported Max Color Attachments: 8 / Draw buffers: 8 sRGB surface supported EGLImage to Texture2D supported EGLImage to RenderBuffer supported ignore MipMap glGetError() always return GL_NOERROR Targeting OpenGL 2.1 No hack in shader converter to define overloaded function with int Not trying to batch small subsequent glDrawXXXX try to use VBO Force texture for Attachment color0 on FBO Hack to trigger a SwapBuffers when a Full Framebuffer Blit on default FBO is done Force normals to be normalized on FPE shaders Dump the content of VGPU shader conversion glX Will try to recycle EGL Surface Current folder is:/storage/emulated/0/Android/data/net.kdt.pojavlaunch.debug/files/.minecraft EGLBridge: Binding to OpenGL ES version string: 150New VGPU Shader source: #version 320 es #define texture2D texture #define attribute in #define varying out precision highp float; precision highp int; in vec3 Position; in vec2 UV; in vec4 Color; uniform mat4 ModelViewMat; uniform mat4 ProjMat; out vec2 texCoord; out vec4 vertexColor; void main() { gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.00000); texCoord = UV; vertexColor = Color; } New VGPU Shader conversion: #version 320 es #ifdef GL_OES_texture_storage_multisample_2d_array #extension GL_OES_texture_storage_multisample_2d_array : enable #endif #ifdef GL_EXT_texture_buffer #extension GL_EXT_texture_buffer : enable #endif #ifdef GL_EXT_texture_cube_map_array #extension GL_EXT_texture_cube_map_array : enable #endif #ifdef GL_EXT_shader_non_constant_global_initializers #extension GL_EXT_shader_non_constant_global_initializers : enable #endif precision highp float; precision lowp image2D; precision lowp image2DArray; precision lowp image3D; precision lowp imageCube; precision lowp sampler2D; precision lowp sampler3D; precision lowp sampler2DShadow; precision lowp samplerCubeShadow; precision lowp sampler2DArray; precision lowp sampler2DArrayShadow; precision lowp samplerCube; #ifdef GL_EXT_texture_buffer precision lowp samplerBuffer; precision lowp imageBuffer; #endif #ifdef GL_EXT_texture_cube_map_array precision lowp imageCubeArray; precision lowp samplerCubeArray; precision lowp samplerCubeArrayShadow; #endif #ifdef GL_OES_texture_storage_multisample_2d_array precision lowp sampler2DMS; precision lowp sampler2DMSArray; #endif in vec3 Position; in vec2 UV; in vec4 Color; uniform mat4 ModelViewMat; uniform mat4 ProjMat; out vec2 texCoord; out vec4 vertexColor; void main() { gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.00000); texCoord = UV; vertexColor = Color; } version string: 150New VGPU Shader source: #version 320 es #define texture2D texture #define attribute in #define varying out precision highp float; precision highp int; uniform sampler2D DiffuseSampler; uniform vec4 ColorModulator; in vec2 texCoord; in vec4 vertexColor; out vec4 fragColor; void main() { vec4 color = texture(DiffuseSampler, texCoord) * vertexColor; fragColor = color * ColorModulator; } New VGPU Shader conversion: #version 320 es #ifdef GL_OES_texture_storage_multisample_2d_array #extension GL_OES_texture_storage_multisample_2d_array : enable #endif #ifdef GL_EXT_texture_buffer #extension GL_EXT_texture_buffer : enable #endif #ifdef GL_EXT_texture_cube_map_array #extension GL_EXT_texture_cube_map_array : enable #endif #ifdef GL_EXT_shader_non_constant_global_initializers #extension GL_EXT_shader_non_constant_global_initializers : enable #endif precision highp float; precision lowp image2D; precision lowp image2DArray; precision lowp image3D; precision lowp imageCube; precision lowp sampler2D; precision lowp sampler3D; precision lowp sampler2DShadow; precision lowp samplerCubeShadow; precision lowp sampler2DArray; precision lowp sampler2DArrayShadow; precision lowp samplerCube; #ifdef GL_EXT_texture_buffer precision lowp samplerBuffer; precision lowp imageBuffer; #endif #ifdef GL_EXT_texture_cube_map_array precision lowp imageCubeArray; precision lowp samplerCubeArray; precision lowp samplerCubeArrayShadow; #endif #ifdef GL_OES_texture_storage_multisample_2d_array precision lowp sampler2DMS; precision lowp sampler2DMSArray; #endif uniform sampler2D DiffuseSampler; uniform vec4 ColorModulator; in vec2 texCoord; in vec4 vertexColor; out vec4 fragColor; void main() { vec4 color = texture(DiffuseSampler, texCoord) * vertexColor; fragColor = color * ColorModulator; } version string: 150New VGPU Shader source: #version 320 es #define texture2D texture #define attribute in #define varying out precision highp float; precision highp int; in vec3 Position; in vec4 Color; uniform mat4 ModelViewMat; uniform mat4 ProjMat; out vec4 vertexColor; void main() { gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.00000); vertexColor = Color; } New VGPU Shader conversion: #version 320 es #ifdef GL_OES_texture_storage_multisample_2d_array #extension GL_OES_texture_storage_multisample_2d_array : enable #endif #ifdef GL_EXT_texture_buffer #extension GL_EXT_texture_buffer : enable #endif #ifdef GL_EXT_texture_cube_map_array #extension GL_EXT_texture_cube_map_array : enable #endif #ifdef GL_EXT_shader_non_constant_global_initializers #extension GL_EXT_shader_non_constant_global_initializers : enable #endif precision highp float; precision lowp image2D; precision lowp image2DArray; precision lowp image3D; precision lowp imageCube; precision lowp sampler2D; precision lowp sampler3D; precision lowp sampler2DShadow; precision lowp samplerCubeShadow; precision lowp sampler2DArray; precision lowp sampler2DArrayShadow; precision lowp samplerCube; #ifdef GL_EXT_texture_buffer precision lowp samplerBuffer; precision lowp imageBuffer; #endif #ifdef GL_EXT_texture_cube_map_array precision lowp imageCubeArray; precision lowp samplerCubeArray; precision lowp samplerCubeArrayShadow; #endif #ifdef GL_OES_texture_storage_multisample_2d_array precision lowp sampler2DMS; precision lowp sampler2DMSArray; #endif in vec3 Position; in vec4 Color; uniform mat4 ModelViewMat; uniform mat4 ProjMat; out vec4 vertexColor; void main() { gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.00000); vertexColor = Color; } version string: 150New VGPU Shader source: #version 320 es #define texture2D texture #define attribute in #define varying out precision highp float; precision highp int; in vec4 vertexColor; uniform vec4 ColorModulator; out vec4 fragColor; void main() { vec4 color = vertexColor; if (color.a == 0.00000) { discard; } fragColor = color * ColorModulator; } New VGPU Shader conversion: #version 320 es #ifdef GL_OES_texture_storage_multisample_2d_array #extension GL_OES_texture_storage_multisample_2d_array : enable #endif #ifdef GL_EXT_texture_buffer #extension GL_EXT_texture_buffer : enable #endif #ifdef GL_EXT_texture_cube_map_array #extension GL_EXT_texture_cube_map_array : enable #endif #ifdef GL_EXT_shader_non_constant_global_initializers #extension GL_EXT_shader_non_constant_global_initializers : enable #endif precision highp float; precision lowp image2D; precision lowp image2DArray; precision lowp image3D; precision lowp imageCube; precision lowp sampler2D; precision lowp sampler3D; precision lowp sampler2DShadow; precision lowp samplerCubeShadow; precision lowp sampler2DArray; precision lowp sampler2DArrayShadow; precision lowp samplerCube; #ifdef GL_EXT_texture_buffer precision lowp samplerBuffer; precision lowp imageBuffer; #endif #ifdef GL_EXT_texture_cube_map_array precision lowp imageCubeArray; precision lowp samplerCubeArray; precision lowp samplerCubeArrayShadow; #endif #ifdef GL_OES_texture_storage_multisample_2d_array precision lowp sampler2DMS; precision lowp sampler2DMSArray; #endif in vec4 vertexColor; uniform vec4 ColorModulator; out vec4 fragColor; void main() { vec4 color = vertexColor; if (color.a == 0.00000) { discard; } fragColor = color * ColorModulator; } version string: 150New VGPU Shader source: #version 320 es #define texture2D texture #define attribute in #define varying out precision highp float; precision highp int; in vec3 Position; in vec4 Color; uniform mat4 ModelViewMat; uniform mat4 ProjMat; out vec4 vertexColor; void main() { gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.00000); vertexColor = Color; } New VGPU Shader conversion: #version 320 es #ifdef GL_OES_texture_storage_multisample_2d_array #extension GL_OES_texture_storage_multisample_2d_array : enable #endif #ifdef GL_EXT_texture_buffer #extension GL_EXT_texture_buffer : enable #endif #ifdef GL_EXT_texture_cube_map_array #extension GL_EXT_texture_cube_map_array : enable #endif #ifdef GL_EXT_shader_non_constant_global_initializers #extension GL_EXT_shader_non_constant_global_initializers : enable #endif precision highp float; precision lowp image2D; precision lowp image2DArray; precision lowp image3D; precision lowp imageCube; precision lowp sampler2D; precision lowp sampler3D; precision lowp sampler2DShadow; precision lowp samplerCubeShadow; precision lowp sampler2DArray; precision lowp sampler2DArrayShadow; precision lowp samplerCube; #ifdef GL_EXT_texture_buffer precision lowp samplerBuffer; precision lowp imageBuffer; #endif #ifdef GL_EXT_texture_cube_map_array precision lowp imageCubeArray; precision lowp samplerCubeArray; precision lowp samplerCubeArrayShadow; #endif #ifdef GL_OES_texture_storage_multisample_2d_array precision lowp sampler2DMS; precision lowp sampler2DMSArray; #endif in vec3 Position; in vec4 Color; uniform mat4 ModelViewMat; uniform mat4 ProjMat; out vec4 vertexColor; void main() { gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.00000); vertexColor = Color; } version string: 150New VGPU Shader source: #version 320 es #define texture2D texture #define attribute in #define varying out precision highp float; precision highp int; in vec4 vertexColor; uniform vec4 ColorModulator; out vec4 fragColor; void main() { vec4 color = vertexColor; if (color.a == 0.00000) { discard; } fragColor = color * ColorModulator; } New VGPU Shader conversion: #version 320 es #ifdef GL_OES_texture_storage_multisample_2d_array #extension GL_OES_texture_storage_multisample_2d_array : enable #endif #ifdef GL_EXT_texture_buffer #extension GL_EXT_texture_buffer : enable #endif #ifdef GL_EXT_texture_cube_map_array #extension GL_EXT_texture_cube_map_array : enable #endif #ifdef GL_EXT_shader_non_constant_global_initializers #extension GL_EXT_shader_non_constant_global_initializers : enable #endif precision highp float; precision lowp image2D; precision lowp image2DArray; precision lowp image3D; precision lowp imageCube; precision lowp sampler2D; precision lowp sampler3D; precision lowp sampler2DShadow; precision lowp samplerCubeShadow; precision lowp sampler2DArray; precision lowp sampler2DArrayShadow; precision lowp samplerCube; #ifdef GL_EXT_texture_buffer precision lowp samplerBuffer; precision lowp imageBuffer; #endif #ifdef GL_EXT_texture_cube_map_array precision lowp imageCubeArray; precision lowp samplerCubeArray; precision lowp samplerCubeArrayShadow; #endif #ifdef GL_OES_texture_storage_multisample_2d_array precision lowp sampler2DMS; precision lowp sampler2DMSArray; #endif in vec4 vertexColor; uniform vec4 ColorModulator; out vec4 fragColor; void main() { vec4 color = vertexColor; if (color.a == 0.00000) { discard; } fragColor = color * ColorModulator; } version string: 150New VGPU Shader source: #version 320 es #define texture2D texture #define attribute in #define varying out precision highp float; precision highp int; #line 0 1 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, int shape) { if (shape == 0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 3 0 in vec3 Position; uniform mat4 ProjMat; uniform mat4 ModelViewMat; uniform int FogShape; out float vertexDistance; void main() { gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.00000); vertexDistance = fog_distance(ModelViewMat, Position, FogShape); } New VGPU Shader conversion: #version 320 es #ifdef GL_OES_texture_storage_multisample_2d_array #extension GL_OES_texture_storage_multisample_2d_array : enable #endif #ifdef GL_EXT_texture_buffer #extension GL_EXT_texture_buffer : enable #endif #ifdef GL_EXT_texture_cube_map_array #extension GL_EXT_texture_cube_map_array : enable #endif #ifdef GL_EXT_shader_non_constant_global_initializers #extension GL_EXT_shader_non_constant_global_initializers : enable #endif precision highp float; precision lowp image2D; precision lowp image2DArray; precision lowp image3D; precision lowp imageCube; precision lowp sampler2D; precision lowp sampler3D; precision lowp sampler2DShadow; precision lowp samplerCubeShadow; precision lowp sampler2DArray; precision lowp sampler2DArrayShadow; precision lowp samplerCube; #ifdef GL_EXT_texture_buffer precision lowp samplerBuffer; precision lowp imageBuffer; #endif #ifdef GL_EXT_texture_cube_map_array precision lowp imageCubeArray; precision lowp samplerCubeArray; precision lowp samplerCubeArrayShadow; #endif #ifdef GL_OES_texture_storage_multisample_2d_array precision lowp sampler2DMS; precision lowp sampler2DMSArray; #endif #line 0 1 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, float shape) { if (shape == 0.0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 3 0 in vec3 Position; uniform mat4 ProjMat; uniform mat4 ModelViewMat; uniform float FogShape; out float vertexDistance; void main() { gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.00000); vertexDistance = fog_distance(ModelViewMat, Position, FogShape); } version string: 150New VGPU Shader source: #version 320 es #define texture2D texture #define attribute in #define varying out precision highp float; precision highp int; #line 0 1 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, int shape) { if (shape == 0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 3 0 uniform vec4 ColorModulator; uniform float FogStart; uniform float FogEnd; uniform vec4 FogColor; in float vertexDistance; out vec4 fragColor; void main() { fragColor = linear_fog(ColorModulator, vertexDistance, FogStart, FogEnd, FogColor); } New VGPU Shader conversion: #version 320 es #ifdef GL_OES_texture_storage_multisample_2d_array #extension GL_OES_texture_storage_multisample_2d_array : enable #endif #ifdef GL_EXT_texture_buffer #extension GL_EXT_texture_buffer : enable #endif #ifdef GL_EXT_texture_cube_map_array #extension GL_EXT_texture_cube_map_array : enable #endif #ifdef GL_EXT_shader_non_constant_global_initializers #extension GL_EXT_shader_non_constant_global_initializers : enable #endif precision highp float; precision lowp image2D; precision lowp image2DArray; precision lowp image3D; precision lowp imageCube; precision lowp sampler2D; precision lowp sampler3D; precision lowp sampler2DShadow; precision lowp samplerCubeShadow; precision lowp sampler2DArray; precision lowp sampler2DArrayShadow; precision lowp samplerCube; #ifdef GL_EXT_texture_buffer precision lowp samplerBuffer; precision lowp imageBuffer; #endif #ifdef GL_EXT_texture_cube_map_array precision lowp imageCubeArray; precision lowp samplerCubeArray; precision lowp samplerCubeArrayShadow; #endif #ifdef GL_OES_texture_storage_multisample_2d_array precision lowp sampler2DMS; precision lowp sampler2DMSArray; #endif #line 0 1 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, float shape) { if (shape == 0.0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 3 0 uniform vec4 ColorModulator; uniform float FogStart; uniform float FogEnd; uniform vec4 FogColor; in float vertexDistance; out vec4 fragColor; void main() { fragColor = linear_fog(ColorModulator, vertexDistance, FogStart, FogEnd, FogColor); } version string: 150New VGPU Shader source: #version 320 es #define texture2D texture #define attribute in #define varying out precision highp float; precision highp int; in vec3 Position; in vec4 Color; uniform mat4 ModelViewMat; uniform mat4 ProjMat; out vec4 vertexColor; void main() { gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.00000); vertexColor = Color; } New VGPU Shader conversion: #version 320 es #ifdef GL_OES_texture_storage_multisample_2d_array #extension GL_OES_texture_storage_multisample_2d_array : enable #endif #ifdef GL_EXT_texture_buffer #extension GL_EXT_texture_buffer : enable #endif #ifdef GL_EXT_texture_cube_map_array #extension GL_EXT_texture_cube_map_array : enable #endif #ifdef GL_EXT_shader_non_constant_global_initializers #extension GL_EXT_shader_non_constant_global_initializers : enable #endif precision highp float; precision lowp image2D; precision lowp image2DArray; precision lowp image3D; precision lowp imageCube; precision lowp sampler2D; precision lowp sampler3D; precision lowp sampler2DShadow; precision lowp samplerCubeShadow; precision lowp sampler2DArray; precision lowp sampler2DArrayShadow; precision lowp samplerCube; #ifdef GL_EXT_texture_buffer precision lowp samplerBuffer; precision lowp imageBuffer; #endif #ifdef GL_EXT_texture_cube_map_array precision lowp imageCubeArray; precision lowp samplerCubeArray; precision lowp samplerCubeArrayShadow; #endif #ifdef GL_OES_texture_storage_multisample_2d_array precision lowp sampler2DMS; precision lowp sampler2DMSArray; #endif in vec3 Position; in vec4 Color; uniform mat4 ModelViewMat; uniform mat4 ProjMat; out vec4 vertexColor; void main() { gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.00000); vertexColor = Color; } version string: 150New VGPU Shader source: #version 320 es #define texture2D texture #define attribute in #define varying out precision highp float; precision highp int; in vec4 vertexColor; uniform vec4 ColorModulator; out vec4 fragColor; void main() { vec4 color = vertexColor; if (color.a == 0.00000) { discard; } fragColor = color * ColorModulator; } New VGPU Shader conversion: #version 320 es #ifdef GL_OES_texture_storage_multisample_2d_array #extension GL_OES_texture_storage_multisample_2d_array : enable #endif #ifdef GL_EXT_texture_buffer #extension GL_EXT_texture_buffer : enable #endif #ifdef GL_EXT_texture_cube_map_array #extension GL_EXT_texture_cube_map_array : enable #endif #ifdef GL_EXT_shader_non_constant_global_initializers #extension GL_EXT_shader_non_constant_global_initializers : enable #endif precision highp float; precision lowp image2D; precision lowp image2DArray; precision lowp image3D; precision lowp imageCube; precision lowp sampler2D; precision lowp sampler3D; precision lowp sampler2DShadow; precision lowp samplerCubeShadow; precision lowp sampler2DArray; precision lowp sampler2DArrayShadow; precision lowp samplerCube; #ifdef GL_EXT_texture_buffer precision lowp samplerBuffer; precision lowp imageBuffer; #endif #ifdef GL_EXT_texture_cube_map_array precision lowp imageCubeArray; precision lowp samplerCubeArray; precision lowp samplerCubeArrayShadow; #endif #ifdef GL_OES_texture_storage_multisample_2d_array precision lowp sampler2DMS; precision lowp sampler2DMSArray; #endif in vec4 vertexColor; uniform vec4 ColorModulator; out vec4 fragColor; void main() { vec4 color = vertexColor; if (color.a == 0.00000) { discard; } fragColor = color * ColorModulator; } version string: 150New VGPU Shader source: #version 320 es #define texture2D texture #define attribute in #define varying out precision highp float; precision highp int; in vec3 Position; in vec4 Color; in vec2 UV0; uniform mat4 ModelViewMat; uniform mat4 ProjMat; out vec4 vertexColor; out vec2 texCoord0; void main() { gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.00000); vertexColor = Color; texCoord0 = UV0; } New VGPU Shader conversion: #version 320 es #ifdef GL_OES_texture_storage_multisample_2d_array #extension GL_OES_texture_storage_multisample_2d_array : enable #endif #ifdef GL_EXT_texture_buffer #extension GL_EXT_texture_buffer : enable #endif #ifdef GL_EXT_texture_cube_map_array #extension GL_EXT_texture_cube_map_array : enable #endif #ifdef GL_EXT_shader_non_constant_global_initializers #extension GL_EXT_shader_non_constant_global_initializers : enable #endif precision highp float; precision lowp image2D; precision lowp image2DArray; precision lowp image3D; precision lowp imageCube; precision lowp sampler2D; precision lowp sampler3D; precision lowp sampler2DShadow; precision lowp samplerCubeShadow; precision lowp sampler2DArray; precision lowp sampler2DArrayShadow; precision lowp samplerCube; #ifdef GL_EXT_texture_buffer precision lowp samplerBuffer; precision lowp imageBuffer; #endif #ifdef GL_EXT_texture_cube_map_array precision lowp imageCubeArray; precision lowp samplerCubeArray; precision lowp samplerCubeArrayShadow; #endif #ifdef GL_OES_texture_storage_multisample_2d_array precision lowp sampler2DMS; precision lowp sampler2DMSArray; #endif in vec3 Position; in vec4 Color; in vec2 UV0; uniform mat4 ModelViewMat; uniform mat4 ProjMat; out vec4 vertexColor; out vec2 texCoord0; void main() { gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.00000); vertexColor = Color; texCoord0 = UV0; } version string: 150New VGPU Shader source: #version 320 es #define texture2D texture #define attribute in #define varying out precision highp float; precision highp int; uniform sampler2D Sampler0; uniform vec4 ColorModulator; in vec4 vertexColor; in vec2 texCoord0; out vec4 fragColor; void main() { vec4 color = texture(Sampler0, texCoord0) * vertexColor; if (color.a < 0.100000) { discard; } fragColor = color * ColorModulator; } New VGPU Shader conversion: #version 320 es #ifdef GL_OES_texture_storage_multisample_2d_array #extension GL_OES_texture_storage_multisample_2d_array : enable #endif #ifdef GL_EXT_texture_buffer #extension GL_EXT_texture_buffer : enable #endif #ifdef GL_EXT_texture_cube_map_array #extension GL_EXT_texture_cube_map_array : enable #endif #ifdef GL_EXT_shader_non_constant_global_initializers #extension GL_EXT_shader_non_constant_global_initializers : enable #endif precision highp float; precision lowp image2D; precision lowp image2DArray; precision lowp image3D; precision lowp imageCube; precision lowp sampler2D; precision lowp sampler3D; precision lowp sampler2DShadow; precision lowp samplerCubeShadow; precision lowp sampler2DArray; precision lowp sampler2DArrayShadow; precision lowp samplerCube; #ifdef GL_EXT_texture_buffer precision lowp samplerBuffer; precision lowp imageBuffer; #endif #ifdef GL_EXT_texture_cube_map_array precision lowp imageCubeArray; precision lowp samplerCubeArray; precision lowp samplerCubeArrayShadow; #endif #ifdef GL_OES_texture_storage_multisample_2d_array precision lowp sampler2DMS; precision lowp sampler2DMSArray; #endif uniform sampler2D Sampler0; uniform vec4 ColorModulator; in vec4 vertexColor; in vec2 texCoord0; out vec4 fragColor; void main() { vec4 color = texture(Sampler0, texCoord0) * vertexColor; if (color.a < 0.100000) { discard; } fragColor = color * ColorModulator; } version string: 150New VGPU Shader source: #version 320 es #define texture2D texture #define attribute in #define varying out precision highp float; precision highp int; in vec3 Position; in vec2 UV0; uniform mat4 ModelViewMat; uniform mat4 ProjMat; out vec2 texCoord0; void main() { gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.00000); texCoord0 = UV0; } New VGPU Shader conversion: #version 320 es #ifdef GL_OES_texture_storage_multisample_2d_array #extension GL_OES_texture_storage_multisample_2d_array : enable #endif #ifdef GL_EXT_texture_buffer #extension GL_EXT_texture_buffer : enable #endif #ifdef GL_EXT_texture_cube_map_array #extension GL_EXT_texture_cube_map_array : enable #endif #ifdef GL_EXT_shader_non_constant_global_initializers #extension GL_EXT_shader_non_constant_global_initializers : enable #endif precision highp float; precision lowp image2D; precision lowp image2DArray; precision lowp image3D; precision lowp imageCube; precision lowp sampler2D; precision lowp sampler3D; precision lowp sampler2DShadow; precision lowp samplerCubeShadow; precision lowp sampler2DArray; precision lowp sampler2DArrayShadow; precision lowp samplerCube; #ifdef GL_EXT_texture_buffer precision lowp samplerBuffer; precision lowp imageBuffer; #endif #ifdef GL_EXT_texture_cube_map_array precision lowp imageCubeArray; precision lowp samplerCubeArray; precision lowp samplerCubeArrayShadow; #endif #ifdef GL_OES_texture_storage_multisample_2d_array precision lowp sampler2DMS; precision lowp sampler2DMSArray; #endif in vec3 Position; in vec2 UV0; uniform mat4 ModelViewMat; uniform mat4 ProjMat; out vec2 texCoord0; void main() { gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.00000); texCoord0 = UV0; } version string: 150New VGPU Shader source: #version 320 es #define texture2D texture #define attribute in #define varying out precision highp float; precision highp int; uniform sampler2D Sampler0; uniform vec4 ColorModulator; in vec2 texCoord0; out vec4 fragColor; void main() { vec4 color = texture(Sampler0, texCoord0); if (color.a == 0.00000) { discard; } fragColor = color * ColorModulator; } New VGPU Shader conversion: #version 320 es #ifdef GL_OES_texture_storage_multisample_2d_array #extension GL_OES_texture_storage_multisample_2d_array : enable #endif #ifdef GL_EXT_texture_buffer #extension GL_EXT_texture_buffer : enable #endif #ifdef GL_EXT_texture_cube_map_array #extension GL_EXT_texture_cube_map_array : enable #endif #ifdef GL_EXT_shader_non_constant_global_initializers #extension GL_EXT_shader_non_constant_global_initializers : enable #endif precision highp float; precision lowp image2D; precision lowp image2DArray; precision lowp image3D; precision lowp imageCube; precision lowp sampler2D; precision lowp sampler3D; precision lowp sampler2DShadow; precision lowp samplerCubeShadow; precision lowp sampler2DArray; precision lowp sampler2DArrayShadow; precision lowp samplerCube; #ifdef GL_EXT_texture_buffer precision lowp samplerBuffer; precision lowp imageBuffer; #endif #ifdef GL_EXT_texture_cube_map_array precision lowp imageCubeArray; precision lowp samplerCubeArray; precision lowp samplerCubeArrayShadow; #endif #ifdef GL_OES_texture_storage_multisample_2d_array precision lowp sampler2DMS; precision lowp sampler2DMSArray; #endif uniform sampler2D Sampler0; uniform vec4 ColorModulator; in vec2 texCoord0; out vec4 fragColor; void main() { vec4 color = texture(Sampler0, texCoord0); if (color.a == 0.00000) { discard; } fragColor = color * ColorModulator; } version string: 150New VGPU Shader source: #version 320 es #define texture2D texture #define attribute in #define varying out precision highp float; precision highp int; in vec3 Position; in vec2 UV0; in vec4 Color; uniform mat4 ModelViewMat; uniform mat4 ProjMat; out vec2 texCoord0; out vec4 vertexColor; void main() { gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.00000); texCoord0 = UV0; vertexColor = Color; } New VGPU Shader conversion: #version 320 es #ifdef GL_OES_texture_storage_multisample_2d_array #extension GL_OES_texture_storage_multisample_2d_array : enable #endif #ifdef GL_EXT_texture_buffer #extension GL_EXT_texture_buffer : enable #endif #ifdef GL_EXT_texture_cube_map_array #extension GL_EXT_texture_cube_map_array : enable #endif #ifdef GL_EXT_shader_non_constant_global_initializers #extension GL_EXT_shader_non_constant_global_initializers : enable #endif precision highp float; precision lowp image2D; precision lowp image2DArray; precision lowp image3D; precision lowp imageCube; precision lowp sampler2D; precision lowp sampler3D; precision lowp sampler2DShadow; precision lowp samplerCubeShadow; precision lowp sampler2DArray; precision lowp sampler2DArrayShadow; precision lowp samplerCube; #ifdef GL_EXT_texture_buffer precision lowp samplerBuffer; precision lowp imageBuffer; #endif #ifdef GL_EXT_texture_cube_map_array precision lowp imageCubeArray; precision lowp samplerCubeArray; precision lowp samplerCubeArrayShadow; #endif #ifdef GL_OES_texture_storage_multisample_2d_array precision lowp sampler2DMS; precision lowp sampler2DMSArray; #endif in vec3 Position; in vec2 UV0; in vec4 Color; uniform mat4 ModelViewMat; uniform mat4 ProjMat; out vec2 texCoord0; out vec4 vertexColor; void main() { gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.00000); texCoord0 = UV0; vertexColor = Color; } version string: 150New VGPU Shader source: #version 320 es #define texture2D texture #define attribute in #define varying out precision highp float; precision highp int; uniform sampler2D Sampler0; uniform vec4 ColorModulator; in vec2 texCoord0; in vec4 vertexColor; out vec4 fragColor; void main() { vec4 color = texture(Sampler0, texCoord0) * vertexColor; if (color.a < 0.100000) { discard; } fragColor = color * ColorModulator; } New VGPU Shader conversion: #version 320 es #ifdef GL_OES_texture_storage_multisample_2d_array #extension GL_OES_texture_storage_multisample_2d_array : enable #endif #ifdef GL_EXT_texture_buffer #extension GL_EXT_texture_buffer : enable #endif #ifdef GL_EXT_texture_cube_map_array #extension GL_EXT_texture_cube_map_array : enable #endif #ifdef GL_EXT_shader_non_constant_global_initializers #extension GL_EXT_shader_non_constant_global_initializers : enable #endif precision highp float; precision lowp image2D; precision lowp image2DArray; precision lowp image3D; precision lowp imageCube; precision lowp sampler2D; precision lowp sampler3D; precision lowp sampler2DShadow; precision lowp samplerCubeShadow; precision lowp sampler2DArray; precision lowp sampler2DArrayShadow; precision lowp samplerCube; #ifdef GL_EXT_texture_buffer precision lowp samplerBuffer; precision lowp imageBuffer; #endif #ifdef GL_EXT_texture_cube_map_array precision lowp imageCubeArray; precision lowp samplerCubeArray; precision lowp samplerCubeArrayShadow; #endif #ifdef GL_OES_texture_storage_multisample_2d_array precision lowp sampler2DMS; precision lowp sampler2DMSArray; #endif uniform sampler2D Sampler0; uniform vec4 ColorModulator; in vec2 texCoord0; in vec4 vertexColor; out vec4 fragColor; void main() { vec4 color = texture(Sampler0, texCoord0) * vertexColor; if (color.a < 0.100000) { discard; } fragColor = color * ColorModulator; } version string: 150New VGPU Shader source: #version 320 es #define texture2D texture #define attribute in #define varying out precision highp float; precision highp int; #line 0 1 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, int shape) { if (shape == 0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 3 0 in vec3 Position; in vec4 Color; in vec2 UV0; in ivec2 UV2; uniform sampler2D Sampler2; uniform mat4 ModelViewMat; uniform mat4 ProjMat; uniform mat3 IViewRotMat; uniform int FogShape; out float vertexDistance; out vec4 vertexColor; out vec2 texCoord0; void main() { gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.00000); vertexDistance = fog_distance(ModelViewMat, IViewRotMat * Position, FogShape); vertexColor = Color * texelFetch(Sampler2, UV2 / 16, 0); texCoord0 = UV0; } New VGPU Shader conversion: #version 320 es #ifdef GL_OES_texture_storage_multisample_2d_array #extension GL_OES_texture_storage_multisample_2d_array : enable #endif #ifdef GL_EXT_texture_buffer #extension GL_EXT_texture_buffer : enable #endif #ifdef GL_EXT_texture_cube_map_array #extension GL_EXT_texture_cube_map_array : enable #endif #ifdef GL_EXT_shader_non_constant_global_initializers #extension GL_EXT_shader_non_constant_global_initializers : enable #endif precision highp float; precision lowp image2D; precision lowp image2DArray; precision lowp image3D; precision lowp imageCube; precision lowp sampler2D; precision lowp sampler3D; precision lowp sampler2DShadow; precision lowp samplerCubeShadow; precision lowp sampler2DArray; precision lowp sampler2DArrayShadow; precision lowp samplerCube; #ifdef GL_EXT_texture_buffer precision lowp samplerBuffer; precision lowp imageBuffer; #endif #ifdef GL_EXT_texture_cube_map_array precision lowp imageCubeArray; precision lowp samplerCubeArray; precision lowp samplerCubeArrayShadow; #endif #ifdef GL_OES_texture_storage_multisample_2d_array precision lowp sampler2DMS; precision lowp sampler2DMSArray; #endif vec4 vgpu_texelFetch(sampler2D sampler, vec2 P, float lod){return texelFetch(sampler, ivec2(P), int(lod));} vec4 vgpu_texelFetch(sampler3D sampler, vec3 P, float lod){return texelFetch(sampler, ivec3(P), int(lod));} vec4 vgpu_texelFetch(sampler2DArray sampler, vec3 P, float lod){return texelFetch(sampler, ivec3(P), int(lod));} #ifdef GL_EXT_texture_buffer vec4 vgpu_texelFetch(samplerBuffer sampler, float P){return texelFetch(sampler, int(P));} #endif #ifdef GL_OES_texture_storage_multisample_2d_array vec4 vgpu_texelFetch(sampler2DMS sampler, vec2 P, float _sample){return texelFetch(sampler, ivec2(P), int(_sample));} vec4 vgpu_texelFetch(sampler2DMSArray sampler, vec3 P, float _sample){return texelFetch(sampler, ivec3(P), int(_sample));} #endif #line 0 1 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, float shape) { if (shape == 0.0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 3 0 in vec3 Position; in vec4 Color; in vec2 UV0; in vec2 UV2; uniform sampler2D Sampler2; uniform mat4 ModelViewMat; uniform mat4 ProjMat; uniform mat3 IViewRotMat; uniform float FogShape; out float vertexDistance; out vec4 vertexColor; out vec2 texCoord0; void main() { gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.00000); vertexDistance = fog_distance(ModelViewMat, IViewRotMat * Position, FogShape); vertexColor = Color * vgpu_texelFetch(Sampler2, UV2 / 16.0, 0.0); texCoord0 = UV0; } version string: 150New VGPU Shader source: #version 320 es #define texture2D texture #define attribute in #define varying out precision highp float; precision highp int; #line 0 1 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, int shape) { if (shape == 0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 3 0 uniform sampler2D Sampler0; uniform vec4 ColorModulator; uniform float FogStart; uniform float FogEnd; uniform vec4 FogColor; in float vertexDistance; in vec4 vertexColor; in vec2 texCoord0; out vec4 fragColor; void main() { vec4 color = texture(Sampler0, texCoord0) * vertexColor * ColorModulator; if (color.a < 0.100000) { discard; } fragColor = linear_fog(color, vertexDistance, FogStart, FogEnd, FogColor); } New VGPU Shader conversion: #version 320 es #ifdef GL_OES_texture_storage_multisample_2d_array #extension GL_OES_texture_storage_multisample_2d_array : enable #endif #ifdef GL_EXT_texture_buffer #extension GL_EXT_texture_buffer : enable #endif #ifdef GL_EXT_texture_cube_map_array #extension GL_EXT_texture_cube_map_array : enable #endif #ifdef GL_EXT_shader_non_constant_global_initializers #extension GL_EXT_shader_non_constant_global_initializers : enable #endif precision highp float; precision lowp image2D; precision lowp image2DArray; precision lowp image3D; precision lowp imageCube; precision lowp sampler2D; precision lowp sampler3D; precision lowp sampler2DShadow; precision lowp samplerCubeShadow; precision lowp sampler2DArray; precision lowp sampler2DArrayShadow; precision lowp samplerCube; #ifdef GL_EXT_texture_buffer precision lowp samplerBuffer; precision lowp imageBuffer; #endif #ifdef GL_EXT_texture_cube_map_array precision lowp imageCubeArray; precision lowp samplerCubeArray; precision lowp samplerCubeArrayShadow; #endif #ifdef GL_OES_texture_storage_multisample_2d_array precision lowp sampler2DMS; precision lowp sampler2DMSArray; #endif #line 0 1 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, float shape) { if (shape == 0.0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 3 0 uniform sampler2D Sampler0; uniform vec4 ColorModulator; uniform float FogStart; uniform float FogEnd; uniform vec4 FogColor; in float vertexDistance; in vec4 vertexColor; in vec2 texCoord0; out vec4 fragColor; void main() { vec4 color = texture(Sampler0, texCoord0) * vertexColor * ColorModulator; if (color.a < 0.100000) { discard; } fragColor = linear_fog(color, vertexDistance, FogStart, FogEnd, FogColor); } [17:40:09] [Render thread/ERROR]: Error while loading the narrator com.mojang.text2speech.Narrator$InitializeException: Failed to load library flite at com.mojang.text2speech.NarratorLinux$FliteLibrary.loadNative(NarratorLinux.java:69) ~[text2speech-1.17.9.jar:?] at com.mojang.text2speech.NarratorLinux.(NarratorLinux.java:18) ~[text2speech-1.17.9.jar:?] at com.mojang.text2speech.Narrator.getNarrator(Narrator.java:41) ~[text2speech-1.17.9.jar:?] at eqn.(SourceFile:19) ~[1.20.2.jar:?] at eqv.(SourceFile:649) ~[1.20.2.jar:?] at net.minecraft.client.main.Main.main(SourceFile:214) ~[1.20.2.jar:?] Caused by: java.lang.UnsatisfiedLinkError: Unable to load library 'flite': dlopen failed: library "libflite.so" not found dlopen failed: library "libflite.so" not found Native library (linux-aarch64/libflite.so) not found in resource path ([]) at com.sun.jna.NativeLibrary.loadLibrary(NativeLibrary.java:323) ~[jna-5.13.0.jar:5.13.0 (b0)] at com.sun.jna.NativeLibrary.getInstance(NativeLibrary.java:483) ~[jna-5.13.0.jar:5.13.0 (b0)] at com.sun.jna.NativeLibrary.getInstance(NativeLibrary.java:425) ~[jna-5.13.0.jar:5.13.0 (b0)] at com.mojang.text2speech.NarratorLinux$FliteLibrary.loadNative(NarratorLinux.java:67) ~[text2speech-1.17.9.jar:?] ... 5 more Suppressed: java.lang.UnsatisfiedLinkError: dlopen failed: library "libflite.so" not found at com.sun.jna.Native.open(Native Method) ~[jna-5.13.0.jar:5.13.0 (b0)] at com.sun.jna.NativeLibrary.loadLibrary(NativeLibrary.java:211) ~[jna-5.13.0.jar:5.13.0 (b0)] at com.sun.jna.NativeLibrary.getInstance(NativeLibrary.java:483) ~[jna-5.13.0.jar:5.13.0 (b0)] at com.sun.jna.NativeLibrary.getInstance(NativeLibrary.java:425) ~[jna-5.13.0.jar:5.13.0 (b0)] at com.mojang.text2speech.NarratorLinux$FliteLibrary.loadNative(NarratorLinux.java:67) ~[text2speech-1.17.9.jar:?] at com.mojang.text2speech.NarratorLinux.(NarratorLinux.java:18) ~[text2speech-1.17.9.jar:?] at com.mojang.text2speech.Narrator.getNarrator(Narrator.java:41) ~[text2speech-1.17.9.jar:?] at eqn.(SourceFile:19) ~[1.20.2.jar:?] at eqv.(SourceFile:649) ~[1.20.2.jar:?] at net.minecraft.client.main.Main.main(SourceFile:214) ~[1.20.2.jar:?] Suppressed: java.lang.UnsatisfiedLinkError: dlopen failed: library "libflite.so" not found at com.sun.jna.Native.open(Native Method) ~[jna-5.13.0.jar:5.13.0 (b0)] at com.sun.jna.NativeLibrary.loadLibrary(NativeLibrary.java:224) ~[jna-5.13.0.jar:5.13.0 (b0)] at com.sun.jna.NativeLibrary.getInstance(NativeLibrary.java:483) ~[jna-5.13.0.jar:5.13.0 (b0)] at com.sun.jna.NativeLibrary.getInstance(NativeLibrary.java:425) ~[jna-5.13.0.jar:5.13.0 (b0)] at com.mojang.text2speech.NarratorLinux$FliteLibrary.loadNative(NarratorLinux.java:67) ~[text2speech-1.17.9.jar:?] at com.mojang.text2speech.NarratorLinux.(NarratorLinux.java:18) ~[text2speech-1.17.9.jar:?] at com.mojang.text2speech.Narrator.getNarrator(Narrator.java:41) ~[text2speech-1.17.9.jar:?] at eqn.(SourceFile:19) ~[1.20.2.jar:?] at eqv.(SourceFile:649) ~[1.20.2.jar:?] at net.minecraft.client.main.Main.main(SourceFile:214) ~[1.20.2.jar:?] Suppressed: java.io.IOException: Native library (linux-aarch64/libflite.so) not found in resource path ([]) at com.sun.jna.Native.extractFromResourcePath(Native.java:1145) ~[jna-5.13.0.jar:5.13.0 (b0)] at com.sun.jna.NativeLibrary.loadLibrary(NativeLibrary.java:295) ~[jna-5.13.0.jar:5.13.0 (b0)] at com.sun.jna.NativeLibrary.getInstance(NativeLibrary.java:483) ~[jna-5.13.0.jar:5.13.0 (b0)] at com.sun.jna.NativeLibrary.getInstance(NativeLibrary.java:425) ~[jna-5.13.0.jar:5.13.0 (b0)] at com.mojang.text2speech.NarratorLinux$FliteLibrary.loadNative(NarratorLinux.java:67) ~[text2speech-1.17.9.jar:?] at com.mojang.text2speech.NarratorLinux.(NarratorLinux.java:18) ~[text2speech-1.17.9.jar:?] at com.mojang.text2speech.Narrator.getNarrator(Narrator.java:41) ~[text2speech-1.17.9.jar:?] at eqn.(SourceFile:19) ~[1.20.2.jar:?] at eqv.(SourceFile:649) ~[1.20.2.jar:?] at net.minecraft.client.main.Main.main(SourceFile:214) ~[1.20.2.jar:?] [17:40:09] [Render thread/INFO]: Reloading ResourceManager: vanilla [17:40:09] [Worker-Main-7/INFO]: Found unifont_all_no_pua-15.0.06.hex, loading I/NativeInput(25588): Input ready: 1 [17:40:12] [Render thread/WARN]: Missing sound for event: minecraft:item.goat_horn.play [17:40:12] [Render thread/WARN]: Missing sound for event: minecraft:entity.goat.screaming.horn_break [ALSOFT] (EE) Failed to set real-time priority for thread: Operation not permitted (1) [ALSOFT] (EE) Failed to set real-time priority for thread: Operation not permitted (1) [17:40:13] [Render thread/INFO]: OpenAL initialized on device OpenSL [17:40:13] [Render thread/INFO]: Sound engine started [17:40:13] [Render thread/INFO]: Created: 1024x512x0 minecraft:textures/atlas/blocks.png-atlas [17:40:13] [Render thread/INFO]: Created: 256x256x0 minecraft:textures/atlas/signs.png-atlas [17:40:13] [Render thread/INFO]: Created: 512x512x0 minecraft:textures/atlas/banner_patterns.png-atlas [17:40:13] [Render thread/INFO]: Created: 512x512x0 minecraft:textures/atlas/shield_patterns.png-atlas [17:40:13] [Render thread/INFO]: Created: 1024x1024x0 minecraft:textures/atlas/armor_trims.png-atlas [17:40:13] [Render thread/INFO]: Created: 256x256x0 minecraft:textures/atlas/chest.png-atlas [17:40:13] [Render thread/INFO]: Created: 128x64x0 minecraft:textures/atlas/decorated_pot.png-atlas [17:40:13] [Render thread/INFO]: Created: 512x256x0 minecraft:textures/atlas/beds.png-atlas [17:40:13] [Render thread/INFO]: Created: 512x256x0 minecraft:textures/atlas/shulker_boxes.png-atlas version string: 150New VGPU Shader source: #version 320 es #define texture2D texture #define attribute in #define varying out precision highp float; precision highp int; #line 0 1 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, int shape) { if (shape == 0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 3 0 in vec3 Position; in vec2 UV0; in vec4 Color; in ivec2 UV2; uniform sampler2D Sampler2; uniform mat4 ModelViewMat; uniform mat4 ProjMat; uniform int FogShape; out float vertexDistance; out vec2 texCoord0; out vec4 vertexColor; void main() { gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.00000); vertexDistance = fog_distance(ModelViewMat, Position, FogShape); texCoord0 = UV0; vertexColor = Color * texelFetch(Sampler2, UV2 / 16, 0); } New VGPU Shader conversion: #version 320 es #ifdef GL_OES_texture_storage_multisample_2d_array #extension GL_OES_texture_storage_multisample_2d_array : enable #endif #ifdef GL_EXT_texture_buffer #extension GL_EXT_texture_buffer : enable #endif #ifdef GL_EXT_texture_cube_map_array #extension GL_EXT_texture_cube_map_array : enable #endif #ifdef GL_EXT_shader_non_constant_global_initializers #extension GL_EXT_shader_non_constant_global_initializers : enable #endif precision highp float; precision lowp image2D; precision lowp image2DArray; precision lowp image3D; precision lowp imageCube; precision lowp sampler2D; precision lowp sampler3D; precision lowp sampler2DShadow; precision lowp samplerCubeShadow; precision lowp sampler2DArray; precision lowp sampler2DArrayShadow; precision lowp samplerCube; #ifdef GL_EXT_texture_buffer precision lowp samplerBuffer; precision lowp imageBuffer; #endif #ifdef GL_EXT_texture_cube_map_array precision lowp imageCubeArray; precision lowp samplerCubeArray; precision lowp samplerCubeArrayShadow; #endif #ifdef GL_OES_texture_storage_multisample_2d_array precision lowp sampler2DMS; precision lowp sampler2DMSArray; #endif vec4 vgpu_texelFetch(sampler2D sampler, vec2 P, float lod){return texelFetch(sampler, ivec2(P), int(lod));} vec4 vgpu_texelFetch(sampler3D sampler, vec3 P, float lod){return texelFetch(sampler, ivec3(P), int(lod));} vec4 vgpu_texelFetch(sampler2DArray sampler, vec3 P, float lod){return texelFetch(sampler, ivec3(P), int(lod));} #ifdef GL_EXT_texture_buffer vec4 vgpu_texelFetch(samplerBuffer sampler, float P){return texelFetch(sampler, int(P));} #endif #ifdef GL_OES_texture_storage_multisample_2d_array vec4 vgpu_texelFetch(sampler2DMS sampler, vec2 P, float _sample){return texelFetch(sampler, ivec2(P), int(_sample));} vec4 vgpu_texelFetch(sampler2DMSArray sampler, vec3 P, float _sample){return texelFetch(sampler, ivec3(P), int(_sample));} #endif #line 0 1 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, float shape) { if (shape == 0.0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 3 0 in vec3 Position; in vec2 UV0; in vec4 Color; in vec2 UV2; uniform sampler2D Sampler2; uniform mat4 ModelViewMat; uniform mat4 ProjMat; uniform float FogShape; out float vertexDistance; out vec2 texCoord0; out vec4 vertexColor; void main() { gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.00000); vertexDistance = fog_distance(ModelViewMat, Position, FogShape); texCoord0 = UV0; vertexColor = Color * vgpu_texelFetch(Sampler2, UV2 / 16.0, 0.0); } version string: 150New VGPU Shader source: #version 320 es #define texture2D texture #define attribute in #define varying out precision highp float; precision highp int; #line 0 1 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, int shape) { if (shape == 0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 3 0 uniform sampler2D Sampler0; uniform vec4 ColorModulator; uniform float FogStart; uniform float FogEnd; uniform vec4 FogColor; in float vertexDistance; in vec2 texCoord0; in vec4 vertexColor; out vec4 fragColor; void main() { vec4 color = texture(Sampler0, texCoord0) * vertexColor * ColorModulator; if (color.a < 0.100000) { discard; } fragColor = linear_fog(color, vertexDistance, FogStart, FogEnd, FogColor); } New VGPU Shader conversion: #version 320 es #ifdef GL_OES_texture_storage_multisample_2d_array #extension GL_OES_texture_storage_multisample_2d_array : enable #endif #ifdef GL_EXT_texture_buffer #extension GL_EXT_texture_buffer : enable #endif #ifdef GL_EXT_texture_cube_map_array #extension GL_EXT_texture_cube_map_array : enable #endif #ifdef GL_EXT_shader_non_constant_global_initializers #extension GL_EXT_shader_non_constant_global_initializers : enable #endif precision highp float; precision lowp image2D; precision lowp image2DArray; precision lowp image3D; precision lowp imageCube; precision lowp sampler2D; precision lowp sampler3D; precision lowp sampler2DShadow; precision lowp samplerCubeShadow; precision lowp sampler2DArray; precision lowp sampler2DArrayShadow; precision lowp samplerCube; #ifdef GL_EXT_texture_buffer precision lowp samplerBuffer; precision lowp imageBuffer; #endif #ifdef GL_EXT_texture_cube_map_array precision lowp imageCubeArray; precision lowp samplerCubeArray; precision lowp samplerCubeArrayShadow; #endif #ifdef GL_OES_texture_storage_multisample_2d_array precision lowp sampler2DMS; precision lowp sampler2DMSArray; #endif #line 0 1 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, float shape) { if (shape == 0.0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 3 0 uniform sampler2D Sampler0; uniform vec4 ColorModulator; uniform float FogStart; uniform float FogEnd; uniform vec4 FogColor; in float vertexDistance; in vec2 texCoord0; in vec4 vertexColor; out vec4 fragColor; void main() { vec4 color = texture(Sampler0, texCoord0) * vertexColor * ColorModulator; if (color.a < 0.100000) { discard; } fragColor = linear_fog(color, vertexDistance, FogStart, FogEnd, FogColor); } version string: 150New VGPU Shader source: #version 320 es #define texture2D texture #define attribute in #define varying out precision highp float; precision highp int; #line 0 1 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, int shape) { if (shape == 0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 3 0 in vec3 Position; uniform mat4 ProjMat; uniform mat4 ModelViewMat; uniform int FogShape; out float vertexDistance; void main() { gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.00000); vertexDistance = fog_distance(ModelViewMat, Position, FogShape); } New VGPU Shader conversion: #version 320 es #ifdef GL_OES_texture_storage_multisample_2d_array #extension GL_OES_texture_storage_multisample_2d_array : enable #endif #ifdef GL_EXT_texture_buffer #extension GL_EXT_texture_buffer : enable #endif #ifdef GL_EXT_texture_cube_map_array #extension GL_EXT_texture_cube_map_array : enable #endif #ifdef GL_EXT_shader_non_constant_global_initializers #extension GL_EXT_shader_non_constant_global_initializers : enable #endif precision highp float; precision lowp image2D; precision lowp image2DArray; precision lowp image3D; precision lowp imageCube; precision lowp sampler2D; precision lowp sampler3D; precision lowp sampler2DShadow; precision lowp samplerCubeShadow; precision lowp sampler2DArray; precision lowp sampler2DArrayShadow; precision lowp samplerCube; #ifdef GL_EXT_texture_buffer precision lowp samplerBuffer; precision lowp imageBuffer; #endif #ifdef GL_EXT_texture_cube_map_array precision lowp imageCubeArray; precision lowp samplerCubeArray; precision lowp samplerCubeArrayShadow; #endif #ifdef GL_OES_texture_storage_multisample_2d_array precision lowp sampler2DMS; precision lowp sampler2DMSArray; #endif #line 0 1 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, float shape) { if (shape == 0.0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 3 0 in vec3 Position; uniform mat4 ProjMat; uniform mat4 ModelViewMat; uniform float FogShape; out float vertexDistance; void main() { gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.00000); vertexDistance = fog_distance(ModelViewMat, Position, FogShape); } version string: 150New VGPU Shader source: #version 320 es #define texture2D texture #define attribute in #define varying out precision highp float; precision highp int; #line 0 1 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, int shape) { if (shape == 0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 3 0 uniform vec4 ColorModulator; uniform float FogStart; uniform float FogEnd; uniform vec4 FogColor; in float vertexDistance; out vec4 fragColor; void main() { fragColor = linear_fog(ColorModulator, vertexDistance, FogStart, FogEnd, FogColor); } New VGPU Shader conversion: #version 320 es #ifdef GL_OES_texture_storage_multisample_2d_array #extension GL_OES_texture_storage_multisample_2d_array : enable #endif #ifdef GL_EXT_texture_buffer #extension GL_EXT_texture_buffer : enable #endif #ifdef GL_EXT_texture_cube_map_array #extension GL_EXT_texture_cube_map_array : enable #endif #ifdef GL_EXT_shader_non_constant_global_initializers #extension GL_EXT_shader_non_constant_global_initializers : enable #endif precision highp float; precision lowp image2D; precision lowp image2DArray; precision lowp image3D; precision lowp imageCube; precision lowp sampler2D; precision lowp sampler3D; precision lowp sampler2DShadow; precision lowp samplerCubeShadow; precision lowp sampler2DArray; precision lowp sampler2DArrayShadow; precision lowp samplerCube; #ifdef GL_EXT_texture_buffer precision lowp samplerBuffer; precision lowp imageBuffer; #endif #ifdef GL_EXT_texture_cube_map_array precision lowp imageCubeArray; precision lowp samplerCubeArray; precision lowp samplerCubeArrayShadow; #endif #ifdef GL_OES_texture_storage_multisample_2d_array precision lowp sampler2DMS; precision lowp sampler2DMSArray; #endif #line 0 1 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, float shape) { if (shape == 0.0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 3 0 uniform vec4 ColorModulator; uniform float FogStart; uniform float FogEnd; uniform vec4 FogColor; in float vertexDistance; out vec4 fragColor; void main() { fragColor = linear_fog(ColorModulator, vertexDistance, FogStart, FogEnd, FogColor); } version string: 150New VGPU Shader source: #version 320 es #define texture2D texture #define attribute in #define varying out precision highp float; precision highp int; in vec3 Position; in vec4 Color; uniform mat4 ModelViewMat; uniform mat4 ProjMat; out vec4 vertexColor; void main() { gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.00000); vertexColor = Color; } New VGPU Shader conversion: #version 320 es #ifdef GL_OES_texture_storage_multisample_2d_array #extension GL_OES_texture_storage_multisample_2d_array : enable #endif #ifdef GL_EXT_texture_buffer #extension GL_EXT_texture_buffer : enable #endif #ifdef GL_EXT_texture_cube_map_array #extension GL_EXT_texture_cube_map_array : enable #endif #ifdef GL_EXT_shader_non_constant_global_initializers #extension GL_EXT_shader_non_constant_global_initializers : enable #endif precision highp float; precision lowp image2D; precision lowp image2DArray; precision lowp image3D; precision lowp imageCube; precision lowp sampler2D; precision lowp sampler3D; precision lowp sampler2DShadow; precision lowp samplerCubeShadow; precision lowp sampler2DArray; precision lowp sampler2DArrayShadow; precision lowp samplerCube; #ifdef GL_EXT_texture_buffer precision lowp samplerBuffer; precision lowp imageBuffer; #endif #ifdef GL_EXT_texture_cube_map_array precision lowp imageCubeArray; precision lowp samplerCubeArray; precision lowp samplerCubeArrayShadow; #endif #ifdef GL_OES_texture_storage_multisample_2d_array precision lowp sampler2DMS; precision lowp sampler2DMSArray; #endif in vec3 Position; in vec4 Color; uniform mat4 ModelViewMat; uniform mat4 ProjMat; out vec4 vertexColor; void main() { gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.00000); vertexColor = Color; } version string: 150New VGPU Shader source: #version 320 es #define texture2D texture #define attribute in #define varying out precision highp float; precision highp int; in vec4 vertexColor; uniform vec4 ColorModulator; out vec4 fragColor; void main() { vec4 color = vertexColor; if (color.a == 0.00000) { discard; } fragColor = color * ColorModulator; } New VGPU Shader conversion: #version 320 es #ifdef GL_OES_texture_storage_multisample_2d_array #extension GL_OES_texture_storage_multisample_2d_array : enable #endif #ifdef GL_EXT_texture_buffer #extension GL_EXT_texture_buffer : enable #endif #ifdef GL_EXT_texture_cube_map_array #extension GL_EXT_texture_cube_map_array : enable #endif #ifdef GL_EXT_shader_non_constant_global_initializers #extension GL_EXT_shader_non_constant_global_initializers : enable #endif precision highp float; precision lowp image2D; precision lowp image2DArray; precision lowp image3D; precision lowp imageCube; precision lowp sampler2D; precision lowp sampler3D; precision lowp sampler2DShadow; precision lowp samplerCubeShadow; precision lowp sampler2DArray; precision lowp sampler2DArrayShadow; precision lowp samplerCube; #ifdef GL_EXT_texture_buffer precision lowp samplerBuffer; precision lowp imageBuffer; #endif #ifdef GL_EXT_texture_cube_map_array precision lowp imageCubeArray; precision lowp samplerCubeArray; precision lowp samplerCubeArrayShadow; #endif #ifdef GL_OES_texture_storage_multisample_2d_array precision lowp sampler2DMS; precision lowp sampler2DMSArray; #endif in vec4 vertexColor; uniform vec4 ColorModulator; out vec4 fragColor; void main() { vec4 color = vertexColor; if (color.a == 0.00000) { discard; } fragColor = color * ColorModulator; } version string: 150New VGPU Shader source: #version 320 es #define texture2D texture #define attribute in #define varying out precision highp float; precision highp int; in vec3 Position; in vec4 Color; in vec2 UV2; uniform mat4 ModelViewMat; uniform mat4 ProjMat; out vec4 vertexColor; out vec2 texCoord2; void main() { gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.00000); vertexColor = Color; texCoord2 = UV2; } New VGPU Shader conversion: #version 320 es #ifdef GL_OES_texture_storage_multisample_2d_array #extension GL_OES_texture_storage_multisample_2d_array : enable #endif #ifdef GL_EXT_texture_buffer #extension GL_EXT_texture_buffer : enable #endif #ifdef GL_EXT_texture_cube_map_array #extension GL_EXT_texture_cube_map_array : enable #endif #ifdef GL_EXT_shader_non_constant_global_initializers #extension GL_EXT_shader_non_constant_global_initializers : enable #endif precision highp float; precision lowp image2D; precision lowp image2DArray; precision lowp image3D; precision lowp imageCube; precision lowp sampler2D; precision lowp sampler3D; precision lowp sampler2DShadow; precision lowp samplerCubeShadow; precision lowp sampler2DArray; precision lowp sampler2DArrayShadow; precision lowp samplerCube; #ifdef GL_EXT_texture_buffer precision lowp samplerBuffer; precision lowp imageBuffer; #endif #ifdef GL_EXT_texture_cube_map_array precision lowp imageCubeArray; precision lowp samplerCubeArray; precision lowp samplerCubeArrayShadow; #endif #ifdef GL_OES_texture_storage_multisample_2d_array precision lowp sampler2DMS; precision lowp sampler2DMSArray; #endif in vec3 Position; in vec4 Color; in vec2 UV2; uniform mat4 ModelViewMat; uniform mat4 ProjMat; out vec4 vertexColor; out vec2 texCoord2; void main() { gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.00000); vertexColor = Color; texCoord2 = UV2; } version string: 150New VGPU Shader source: #version 320 es #define texture2D texture #define attribute in #define varying out precision highp float; precision highp int; uniform sampler2D Sampler2; uniform vec4 ColorModulator; in vec4 vertexColor; in vec2 texCoord2; out vec4 fragColor; void main() { vec4 color = texture(Sampler2, texCoord2) * vertexColor; fragColor = color * ColorModulator; } New VGPU Shader conversion: #version 320 es #ifdef GL_OES_texture_storage_multisample_2d_array #extension GL_OES_texture_storage_multisample_2d_array : enable #endif #ifdef GL_EXT_texture_buffer #extension GL_EXT_texture_buffer : enable #endif #ifdef GL_EXT_texture_cube_map_array #extension GL_EXT_texture_cube_map_array : enable #endif #ifdef GL_EXT_shader_non_constant_global_initializers #extension GL_EXT_shader_non_constant_global_initializers : enable #endif precision highp float; precision lowp image2D; precision lowp image2DArray; precision lowp image3D; precision lowp imageCube; precision lowp sampler2D; precision lowp sampler3D; precision lowp sampler2DShadow; precision lowp samplerCubeShadow; precision lowp sampler2DArray; precision lowp sampler2DArrayShadow; precision lowp samplerCube; #ifdef GL_EXT_texture_buffer precision lowp samplerBuffer; precision lowp imageBuffer; #endif #ifdef GL_EXT_texture_cube_map_array precision lowp imageCubeArray; precision lowp samplerCubeArray; precision lowp samplerCubeArrayShadow; #endif #ifdef GL_OES_texture_storage_multisample_2d_array precision lowp sampler2DMS; precision lowp sampler2DMSArray; #endif uniform sampler2D Sampler2; uniform vec4 ColorModulator; in vec4 vertexColor; in vec2 texCoord2; out vec4 fragColor; void main() { vec4 color = texture(Sampler2, texCoord2) * vertexColor; fragColor = color * ColorModulator; } version string: 150New VGPU Shader source: #version 320 es #define texture2D texture #define attribute in #define varying out precision highp float; precision highp int; in vec3 Position; in vec4 Color; in vec2 UV0; uniform mat4 ModelViewMat; uniform mat4 ProjMat; out vec4 vertexColor; out vec2 texCoord0; void main() { gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.00000); vertexColor = Color; texCoord0 = UV0; } New VGPU Shader conversion: #version 320 es #ifdef GL_OES_texture_storage_multisample_2d_array #extension GL_OES_texture_storage_multisample_2d_array : enable #endif #ifdef GL_EXT_texture_buffer #extension GL_EXT_texture_buffer : enable #endif #ifdef GL_EXT_texture_cube_map_array #extension GL_EXT_texture_cube_map_array : enable #endif #ifdef GL_EXT_shader_non_constant_global_initializers #extension GL_EXT_shader_non_constant_global_initializers : enable #endif precision highp float; precision lowp image2D; precision lowp image2DArray; precision lowp image3D; precision lowp imageCube; precision lowp sampler2D; precision lowp sampler3D; precision lowp sampler2DShadow; precision lowp samplerCubeShadow; precision lowp sampler2DArray; precision lowp sampler2DArrayShadow; precision lowp samplerCube; #ifdef GL_EXT_texture_buffer precision lowp samplerBuffer; precision lowp imageBuffer; #endif #ifdef GL_EXT_texture_cube_map_array precision lowp imageCubeArray; precision lowp samplerCubeArray; precision lowp samplerCubeArrayShadow; #endif #ifdef GL_OES_texture_storage_multisample_2d_array precision lowp sampler2DMS; precision lowp sampler2DMSArray; #endif in vec3 Position; in vec4 Color; in vec2 UV0; uniform mat4 ModelViewMat; uniform mat4 ProjMat; out vec4 vertexColor; out vec2 texCoord0; void main() { gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.00000); vertexColor = Color; texCoord0 = UV0; } version string: 150New VGPU Shader source: #version 320 es #define texture2D texture #define attribute in #define varying out precision highp float; precision highp int; uniform sampler2D Sampler0; uniform vec4 ColorModulator; in vec4 vertexColor; in vec2 texCoord0; out vec4 fragColor; void main() { vec4 color = texture(Sampler0, texCoord0) * vertexColor; if (color.a < 0.100000) { discard; } fragColor = color * ColorModulator; } New VGPU Shader conversion: #version 320 es #ifdef GL_OES_texture_storage_multisample_2d_array #extension GL_OES_texture_storage_multisample_2d_array : enable #endif #ifdef GL_EXT_texture_buffer #extension GL_EXT_texture_buffer : enable #endif #ifdef GL_EXT_texture_cube_map_array #extension GL_EXT_texture_cube_map_array : enable #endif #ifdef GL_EXT_shader_non_constant_global_initializers #extension GL_EXT_shader_non_constant_global_initializers : enable #endif precision highp float; precision lowp image2D; precision lowp image2DArray; precision lowp image3D; precision lowp imageCube; precision lowp sampler2D; precision lowp sampler3D; precision lowp sampler2DShadow; precision lowp samplerCubeShadow; precision lowp sampler2DArray; precision lowp sampler2DArrayShadow; precision lowp samplerCube; #ifdef GL_EXT_texture_buffer precision lowp samplerBuffer; precision lowp imageBuffer; #endif #ifdef GL_EXT_texture_cube_map_array precision lowp imageCubeArray; precision lowp samplerCubeArray; precision lowp samplerCubeArrayShadow; #endif #ifdef GL_OES_texture_storage_multisample_2d_array precision lowp sampler2DMS; precision lowp sampler2DMSArray; #endif uniform sampler2D Sampler0; uniform vec4 ColorModulator; in vec4 vertexColor; in vec2 texCoord0; out vec4 fragColor; void main() { vec4 color = texture(Sampler0, texCoord0) * vertexColor; if (color.a < 0.100000) { discard; } fragColor = color * ColorModulator; } version string: 150New VGPU Shader source: #version 320 es #define texture2D texture #define attribute in #define varying out precision highp float; precision highp int; in vec3 Position; in vec4 Color; in vec2 UV0; in vec2 UV2; uniform mat4 ModelViewMat; uniform mat4 ProjMat; out vec4 vertexColor; out vec2 texCoord0; out vec2 texCoord2; void main() { gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.00000); vertexColor = Color; texCoord0 = UV0; texCoord2 = UV2; } New VGPU Shader conversion: #version 320 es #ifdef GL_OES_texture_storage_multisample_2d_array #extension GL_OES_texture_storage_multisample_2d_array : enable #endif #ifdef GL_EXT_texture_buffer #extension GL_EXT_texture_buffer : enable #endif #ifdef GL_EXT_texture_cube_map_array #extension GL_EXT_texture_cube_map_array : enable #endif #ifdef GL_EXT_shader_non_constant_global_initializers #extension GL_EXT_shader_non_constant_global_initializers : enable #endif precision highp float; precision lowp image2D; precision lowp image2DArray; precision lowp image3D; precision lowp imageCube; precision lowp sampler2D; precision lowp sampler3D; precision lowp sampler2DShadow; precision lowp samplerCubeShadow; precision lowp sampler2DArray; precision lowp sampler2DArrayShadow; precision lowp samplerCube; #ifdef GL_EXT_texture_buffer precision lowp samplerBuffer; precision lowp imageBuffer; #endif #ifdef GL_EXT_texture_cube_map_array precision lowp imageCubeArray; precision lowp samplerCubeArray; precision lowp samplerCubeArrayShadow; #endif #ifdef GL_OES_texture_storage_multisample_2d_array precision lowp sampler2DMS; precision lowp sampler2DMSArray; #endif in vec3 Position; in vec4 Color; in vec2 UV0; in vec2 UV2; uniform mat4 ModelViewMat; uniform mat4 ProjMat; out vec4 vertexColor; out vec2 texCoord0; out vec2 texCoord2; void main() { gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.00000); vertexColor = Color; texCoord0 = UV0; texCoord2 = UV2; } version string: 150New VGPU Shader source: #version 320 es #define texture2D texture #define attribute in #define varying out precision highp float; precision highp int; uniform sampler2D Sampler0; uniform vec4 ColorModulator; in vec4 vertexColor; in vec2 texCoord0; in vec2 texCoord2; out vec4 fragColor; void main() { vec4 color = texture(Sampler0, texCoord0) * vertexColor; if (color.a < 0.100000) { discard; } fragColor = color * ColorModulator; } New VGPU Shader conversion: #version 320 es #ifdef GL_OES_texture_storage_multisample_2d_array #extension GL_OES_texture_storage_multisample_2d_array : enable #endif #ifdef GL_EXT_texture_buffer #extension GL_EXT_texture_buffer : enable #endif #ifdef GL_EXT_texture_cube_map_array #extension GL_EXT_texture_cube_map_array : enable #endif #ifdef GL_EXT_shader_non_constant_global_initializers #extension GL_EXT_shader_non_constant_global_initializers : enable #endif precision highp float; precision lowp image2D; precision lowp image2DArray; precision lowp image3D; precision lowp imageCube; precision lowp sampler2D; precision lowp sampler3D; precision lowp sampler2DShadow; precision lowp samplerCubeShadow; precision lowp sampler2DArray; precision lowp sampler2DArrayShadow; precision lowp samplerCube; #ifdef GL_EXT_texture_buffer precision lowp samplerBuffer; precision lowp imageBuffer; #endif #ifdef GL_EXT_texture_cube_map_array precision lowp imageCubeArray; precision lowp samplerCubeArray; precision lowp samplerCubeArrayShadow; #endif #ifdef GL_OES_texture_storage_multisample_2d_array precision lowp sampler2DMS; precision lowp sampler2DMSArray; #endif uniform sampler2D Sampler0; uniform vec4 ColorModulator; in vec4 vertexColor; in vec2 texCoord0; in vec2 texCoord2; out vec4 fragColor; void main() { vec4 color = texture(Sampler0, texCoord0) * vertexColor; if (color.a < 0.100000) { discard; } fragColor = color * ColorModulator; } version string: 150New VGPU Shader source: #version 320 es #define texture2D texture #define attribute in #define varying out precision highp float; precision highp int; in vec3 Position; in vec2 UV0; uniform mat4 ModelViewMat; uniform mat4 ProjMat; out vec2 texCoord0; void main() { gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.00000); texCoord0 = UV0; } New VGPU Shader conversion: #version 320 es #ifdef GL_OES_texture_storage_multisample_2d_array #extension GL_OES_texture_storage_multisample_2d_array : enable #endif #ifdef GL_EXT_texture_buffer #extension GL_EXT_texture_buffer : enable #endif #ifdef GL_EXT_texture_cube_map_array #extension GL_EXT_texture_cube_map_array : enable #endif #ifdef GL_EXT_shader_non_constant_global_initializers #extension GL_EXT_shader_non_constant_global_initializers : enable #endif precision highp float; precision lowp image2D; precision lowp image2DArray; precision lowp image3D; precision lowp imageCube; precision lowp sampler2D; precision lowp sampler3D; precision lowp sampler2DShadow; precision lowp samplerCubeShadow; precision lowp sampler2DArray; precision lowp sampler2DArrayShadow; precision lowp samplerCube; #ifdef GL_EXT_texture_buffer precision lowp samplerBuffer; precision lowp imageBuffer; #endif #ifdef GL_EXT_texture_cube_map_array precision lowp imageCubeArray; precision lowp samplerCubeArray; precision lowp samplerCubeArrayShadow; #endif #ifdef GL_OES_texture_storage_multisample_2d_array precision lowp sampler2DMS; precision lowp sampler2DMSArray; #endif in vec3 Position; in vec2 UV0; uniform mat4 ModelViewMat; uniform mat4 ProjMat; out vec2 texCoord0; void main() { gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.00000); texCoord0 = UV0; } version string: 150New VGPU Shader source: #version 320 es #define texture2D texture #define attribute in #define varying out precision highp float; precision highp int; uniform sampler2D Sampler0; uniform vec4 ColorModulator; in vec2 texCoord0; out vec4 fragColor; void main() { vec4 color = texture(Sampler0, texCoord0); if (color.a == 0.00000) { discard; } fragColor = color * ColorModulator; } New VGPU Shader conversion: #version 320 es #ifdef GL_OES_texture_storage_multisample_2d_array #extension GL_OES_texture_storage_multisample_2d_array : enable #endif #ifdef GL_EXT_texture_buffer #extension GL_EXT_texture_buffer : enable #endif #ifdef GL_EXT_texture_cube_map_array #extension GL_EXT_texture_cube_map_array : enable #endif #ifdef GL_EXT_shader_non_constant_global_initializers #extension GL_EXT_shader_non_constant_global_initializers : enable #endif precision highp float; precision lowp image2D; precision lowp image2DArray; precision lowp image3D; precision lowp imageCube; precision lowp sampler2D; precision lowp sampler3D; precision lowp sampler2DShadow; precision lowp samplerCubeShadow; precision lowp sampler2DArray; precision lowp sampler2DArrayShadow; precision lowp samplerCube; #ifdef GL_EXT_texture_buffer precision lowp samplerBuffer; precision lowp imageBuffer; #endif #ifdef GL_EXT_texture_cube_map_array precision lowp imageCubeArray; precision lowp samplerCubeArray; precision lowp samplerCubeArrayShadow; #endif #ifdef GL_OES_texture_storage_multisample_2d_array precision lowp sampler2DMS; precision lowp sampler2DMSArray; #endif uniform sampler2D Sampler0; uniform vec4 ColorModulator; in vec2 texCoord0; out vec4 fragColor; void main() { vec4 color = texture(Sampler0, texCoord0); if (color.a == 0.00000) { discard; } fragColor = color * ColorModulator; } version string: 150New VGPU Shader source: #version 320 es #define texture2D texture #define attribute in #define varying out precision highp float; precision highp int; in vec3 Position; in vec2 UV0; in vec4 Color; uniform mat4 ModelViewMat; uniform mat4 ProjMat; out vec2 texCoord0; out vec4 vertexColor; void main() { gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.00000); texCoord0 = UV0; vertexColor = Color; } New VGPU Shader conversion: #version 320 es #ifdef GL_OES_texture_storage_multisample_2d_array #extension GL_OES_texture_storage_multisample_2d_array : enable #endif #ifdef GL_EXT_texture_buffer #extension GL_EXT_texture_buffer : enable #endif #ifdef GL_EXT_texture_cube_map_array #extension GL_EXT_texture_cube_map_array : enable #endif #ifdef GL_EXT_shader_non_constant_global_initializers #extension GL_EXT_shader_non_constant_global_initializers : enable #endif precision highp float; precision lowp image2D; precision lowp image2DArray; precision lowp image3D; precision lowp imageCube; precision lowp sampler2D; precision lowp sampler3D; precision lowp sampler2DShadow; precision lowp samplerCubeShadow; precision lowp sampler2DArray; precision lowp sampler2DArrayShadow; precision lowp samplerCube; #ifdef GL_EXT_texture_buffer precision lowp samplerBuffer; precision lowp imageBuffer; #endif #ifdef GL_EXT_texture_cube_map_array precision lowp imageCubeArray; precision lowp samplerCubeArray; precision lowp samplerCubeArrayShadow; #endif #ifdef GL_OES_texture_storage_multisample_2d_array precision lowp sampler2DMS; precision lowp sampler2DMSArray; #endif in vec3 Position; in vec2 UV0; in vec4 Color; uniform mat4 ModelViewMat; uniform mat4 ProjMat; out vec2 texCoord0; out vec4 vertexColor; void main() { gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.00000); texCoord0 = UV0; vertexColor = Color; } version string: 150New VGPU Shader source: #version 320 es #define texture2D texture #define attribute in #define varying out precision highp float; precision highp int; uniform sampler2D Sampler0; uniform vec4 ColorModulator; in vec2 texCoord0; in vec4 vertexColor; out vec4 fragColor; void main() { vec4 color = texture(Sampler0, texCoord0) * vertexColor; if (color.a < 0.100000) { discard; } fragColor = color * ColorModulator; } New VGPU Shader conversion: #version 320 es #ifdef GL_OES_texture_storage_multisample_2d_array #extension GL_OES_texture_storage_multisample_2d_array : enable #endif #ifdef GL_EXT_texture_buffer #extension GL_EXT_texture_buffer : enable #endif #ifdef GL_EXT_texture_cube_map_array #extension GL_EXT_texture_cube_map_array : enable #endif #ifdef GL_EXT_shader_non_constant_global_initializers #extension GL_EXT_shader_non_constant_global_initializers : enable #endif precision highp float; precision lowp image2D; precision lowp image2DArray; precision lowp image3D; precision lowp imageCube; precision lowp sampler2D; precision lowp sampler3D; precision lowp sampler2DShadow; precision lowp samplerCubeShadow; precision lowp sampler2DArray; precision lowp sampler2DArrayShadow; precision lowp samplerCube; #ifdef GL_EXT_texture_buffer precision lowp samplerBuffer; precision lowp imageBuffer; #endif #ifdef GL_EXT_texture_cube_map_array precision lowp imageCubeArray; precision lowp samplerCubeArray; precision lowp samplerCubeArrayShadow; #endif #ifdef GL_OES_texture_storage_multisample_2d_array precision lowp sampler2DMS; precision lowp sampler2DMSArray; #endif uniform sampler2D Sampler0; uniform vec4 ColorModulator; in vec2 texCoord0; in vec4 vertexColor; out vec4 fragColor; void main() { vec4 color = texture(Sampler0, texCoord0) * vertexColor; if (color.a < 0.100000) { discard; } fragColor = color * ColorModulator; } version string: 150New VGPU Shader source: #version 320 es #define texture2D texture #define attribute in #define varying out precision highp float; precision highp int; #line 0 1 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, int shape) { if (shape == 0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 3 0 in vec3 Position; in vec2 UV0; in vec4 Color; in vec3 Normal; uniform mat4 ModelViewMat; uniform mat4 ProjMat; uniform int FogShape; out vec2 texCoord0; out float vertexDistance; out vec4 vertexColor; out vec4 normal; void main() { gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.00000); texCoord0 = UV0; vertexDistance = fog_distance(ModelViewMat, Position, FogShape); vertexColor = Color; normal = ProjMat * ModelViewMat * vec4(Normal, 0.00000); } New VGPU Shader conversion: #version 320 es #ifdef GL_OES_texture_storage_multisample_2d_array #extension GL_OES_texture_storage_multisample_2d_array : enable #endif #ifdef GL_EXT_texture_buffer #extension GL_EXT_texture_buffer : enable #endif #ifdef GL_EXT_texture_cube_map_array #extension GL_EXT_texture_cube_map_array : enable #endif #ifdef GL_EXT_shader_non_constant_global_initializers #extension GL_EXT_shader_non_constant_global_initializers : enable #endif precision highp float; precision lowp image2D; precision lowp image2DArray; precision lowp image3D; precision lowp imageCube; precision lowp sampler2D; precision lowp sampler3D; precision lowp sampler2DShadow; precision lowp samplerCubeShadow; precision lowp sampler2DArray; precision lowp sampler2DArrayShadow; precision lowp samplerCube; #ifdef GL_EXT_texture_buffer precision lowp samplerBuffer; precision lowp imageBuffer; #endif #ifdef GL_EXT_texture_cube_map_array precision lowp imageCubeArray; precision lowp samplerCubeArray; precision lowp samplerCubeArrayShadow; #endif #ifdef GL_OES_texture_storage_multisample_2d_array precision lowp sampler2DMS; precision lowp sampler2DMSArray; #endif #line 0 1 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, float shape) { if (shape == 0.0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 3 0 in vec3 Position; in vec2 UV0; in vec4 Color; in vec3 Normal; uniform mat4 ModelViewMat; uniform mat4 ProjMat; uniform float FogShape; out vec2 texCoord0; out float vertexDistance; out vec4 vertexColor; out vec4 normal; void main() { gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.00000); texCoord0 = UV0; vertexDistance = fog_distance(ModelViewMat, Position, FogShape); vertexColor = Color; normal = ProjMat * ModelViewMat * vec4(Normal, 0.00000); } version string: 150New VGPU Shader source: #version 320 es #define texture2D texture #define attribute in #define varying out precision highp float; precision highp int; #line 0 1 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, int shape) { if (shape == 0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 3 0 uniform sampler2D Sampler0; uniform vec4 ColorModulator; uniform float FogStart; uniform float FogEnd; uniform vec4 FogColor; in vec2 texCoord0; in float vertexDistance; in vec4 vertexColor; in vec4 normal; out vec4 fragColor; void main() { vec4 color = texture(Sampler0, texCoord0) * vertexColor * ColorModulator; if (color.a < 0.100000) { discard; } fragColor = linear_fog(color, vertexDistance, FogStart, FogEnd, FogColor); } New VGPU Shader conversion: #version 320 es #ifdef GL_OES_texture_storage_multisample_2d_array #extension GL_OES_texture_storage_multisample_2d_array : enable #endif #ifdef GL_EXT_texture_buffer #extension GL_EXT_texture_buffer : enable #endif #ifdef GL_EXT_texture_cube_map_array #extension GL_EXT_texture_cube_map_array : enable #endif #ifdef GL_EXT_shader_non_constant_global_initializers #extension GL_EXT_shader_non_constant_global_initializers : enable #endif precision highp float; precision lowp image2D; precision lowp image2DArray; precision lowp image3D; precision lowp imageCube; precision lowp sampler2D; precision lowp sampler3D; precision lowp sampler2DShadow; precision lowp samplerCubeShadow; precision lowp sampler2DArray; precision lowp sampler2DArrayShadow; precision lowp samplerCube; #ifdef GL_EXT_texture_buffer precision lowp samplerBuffer; precision lowp imageBuffer; #endif #ifdef GL_EXT_texture_cube_map_array precision lowp imageCubeArray; precision lowp samplerCubeArray; precision lowp samplerCubeArrayShadow; #endif #ifdef GL_OES_texture_storage_multisample_2d_array precision lowp sampler2DMS; precision lowp sampler2DMSArray; #endif #line 0 1 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, float shape) { if (shape == 0.0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 3 0 uniform sampler2D Sampler0; uniform vec4 ColorModulator; uniform float FogStart; uniform float FogEnd; uniform vec4 FogColor; in vec2 texCoord0; in float vertexDistance; in vec4 vertexColor; in vec4 normal; out vec4 fragColor; void main() { vec4 color = texture(Sampler0, texCoord0) * vertexColor * ColorModulator; if (color.a < 0.100000) { discard; } fragColor = linear_fog(color, vertexDistance, FogStart, FogEnd, FogColor); } version string: 150New VGPU Shader source: #version 320 es #define texture2D texture #define attribute in #define varying out precision highp float; precision highp int; in vec3 Position; in vec2 UV0; in vec2 UV2; in vec4 Color; uniform mat4 ModelViewMat; uniform mat4 ProjMat; out vec2 texCoord0; out vec2 texCoord2; out vec4 vertexColor; void main() { gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.00000); texCoord0 = UV0; texCoord2 = UV2; vertexColor = Color; } New VGPU Shader conversion: #version 320 es #ifdef GL_OES_texture_storage_multisample_2d_array #extension GL_OES_texture_storage_multisample_2d_array : enable #endif #ifdef GL_EXT_texture_buffer #extension GL_EXT_texture_buffer : enable #endif #ifdef GL_EXT_texture_cube_map_array #extension GL_EXT_texture_cube_map_array : enable #endif #ifdef GL_EXT_shader_non_constant_global_initializers #extension GL_EXT_shader_non_constant_global_initializers : enable #endif precision highp float; precision lowp image2D; precision lowp image2DArray; precision lowp image3D; precision lowp imageCube; precision lowp sampler2D; precision lowp sampler3D; precision lowp sampler2DShadow; precision lowp samplerCubeShadow; precision lowp sampler2DArray; precision lowp sampler2DArrayShadow; precision lowp samplerCube; #ifdef GL_EXT_texture_buffer precision lowp samplerBuffer; precision lowp imageBuffer; #endif #ifdef GL_EXT_texture_cube_map_array precision lowp imageCubeArray; precision lowp samplerCubeArray; precision lowp samplerCubeArrayShadow; #endif #ifdef GL_OES_texture_storage_multisample_2d_array precision lowp sampler2DMS; precision lowp sampler2DMSArray; #endif in vec3 Position; in vec2 UV0; in vec2 UV2; in vec4 Color; uniform mat4 ModelViewMat; uniform mat4 ProjMat; out vec2 texCoord0; out vec2 texCoord2; out vec4 vertexColor; void main() { gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.00000); texCoord0 = UV0; texCoord2 = UV2; vertexColor = Color; } version string: 150New VGPU Shader source: #version 320 es #define texture2D texture #define attribute in #define varying out precision highp float; precision highp int; uniform sampler2D Sampler0; uniform vec4 ColorModulator; in vec2 texCoord0; in vec2 texCoord2; in vec4 vertexColor; out vec4 fragColor; void main() { vec4 color = texture(Sampler0, texCoord0) * vertexColor; if (color.a < 0.100000) { discard; } fragColor = color * ColorModulator; } New VGPU Shader conversion: #version 320 es #ifdef GL_OES_texture_storage_multisample_2d_array #extension GL_OES_texture_storage_multisample_2d_array : enable #endif #ifdef GL_EXT_texture_buffer #extension GL_EXT_texture_buffer : enable #endif #ifdef GL_EXT_texture_cube_map_array #extension GL_EXT_texture_cube_map_array : enable #endif #ifdef GL_EXT_shader_non_constant_global_initializers #extension GL_EXT_shader_non_constant_global_initializers : enable #endif precision highp float; precision lowp image2D; precision lowp image2DArray; precision lowp image3D; precision lowp imageCube; precision lowp sampler2D; precision lowp sampler3D; precision lowp sampler2DShadow; precision lowp samplerCubeShadow; precision lowp sampler2DArray; precision lowp sampler2DArrayShadow; precision lowp samplerCube; #ifdef GL_EXT_texture_buffer precision lowp samplerBuffer; precision lowp imageBuffer; #endif #ifdef GL_EXT_texture_cube_map_array precision lowp imageCubeArray; precision lowp samplerCubeArray; precision lowp samplerCubeArrayShadow; #endif #ifdef GL_OES_texture_storage_multisample_2d_array precision lowp sampler2DMS; precision lowp sampler2DMSArray; #endif uniform sampler2D Sampler0; uniform vec4 ColorModulator; in vec2 texCoord0; in vec2 texCoord2; in vec4 vertexColor; out vec4 fragColor; void main() { vec4 color = texture(Sampler0, texCoord0) * vertexColor; if (color.a < 0.100000) { discard; } fragColor = color * ColorModulator; } version string: 150New VGPU Shader source: #version 320 es #define texture2D texture #define attribute in #define varying out precision highp float; precision highp int; #line 0 1 #define MINECRAFT_LIGHT_POWER (0.6) #define MINECRAFT_AMBIENT_LIGHT (0.4) vec4 minecraft_mix_light(vec3 lightDir0, vec3 lightDir1, vec3 normal, vec4 color) { lightDir0 = normalize(lightDir0); lightDir1 = normalize(lightDir1); float light0 = max(0.00000, dot(lightDir0, normal)); float light1 = max(0.00000, dot(lightDir1, normal)); float lightAccum = min(1.00000, (light0 + light1) * MINECRAFT_LIGHT_POWER + MINECRAFT_AMBIENT_LIGHT); return vec4(color.rgb * lightAccum, color.a); } vec4 minecraft_sample_lightmap(sampler2D lightMap, ivec2 uv) { return texture(lightMap, clamp(uv / 256.000, vec2(0.500000 / 16.0000), vec2(15.5000 / 16.0000))); } #line 0 2 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, int shape) { if (shape == 0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 4 0 in vec3 Position; in vec4 Color; in vec2 UV0; in ivec2 UV2; in vec3 Normal; uniform sampler2D Sampler2; uniform mat4 ModelViewMat; uniform mat4 ProjMat; uniform vec3 ChunkOffset; uniform int FogShape; out float vertexDistance; out vec4 vertexColor; out vec2 texCoord0; out vec4 normal; void main() { vec3 pos = Position + ChunkOffset; gl_Position = ProjMat * ModelViewMat * vec4(pos, 1.00000); vertexDistance = fog_distance(ModelViewMat, pos, FogShape); vertexColor = Color * minecraft_sample_lightmap(Sampler2, UV2); texCoord0 = UV0; normal = ProjMat * ModelViewMat * vec4(Normal, 0.00000); } New VGPU Shader conversion: #version 320 es #ifdef GL_OES_texture_storage_multisample_2d_array #extension GL_OES_texture_storage_multisample_2d_array : enable #endif #ifdef GL_EXT_texture_buffer #extension GL_EXT_texture_buffer : enable #endif #ifdef GL_EXT_texture_cube_map_array #extension GL_EXT_texture_cube_map_array : enable #endif #ifdef GL_EXT_shader_non_constant_global_initializers #extension GL_EXT_shader_non_constant_global_initializers : enable #endif precision highp float; precision lowp image2D; precision lowp image2DArray; precision lowp image3D; precision lowp imageCube; precision lowp sampler2D; precision lowp sampler3D; precision lowp sampler2DShadow; precision lowp samplerCubeShadow; precision lowp sampler2DArray; precision lowp sampler2DArrayShadow; precision lowp samplerCube; #ifdef GL_EXT_texture_buffer precision lowp samplerBuffer; precision lowp imageBuffer; #endif #ifdef GL_EXT_texture_cube_map_array precision lowp imageCubeArray; precision lowp samplerCubeArray; precision lowp samplerCubeArrayShadow; #endif #ifdef GL_OES_texture_storage_multisample_2d_array precision lowp sampler2DMS; precision lowp sampler2DMSArray; #endif #line 0 1 #define MINECRAFT_LIGHT_POWER (0.6) #define MINECRAFT_AMBIENT_LIGHT (0.4) vec4 minecraft_mix_light(vec3 lightDir0, vec3 lightDir1, vec3 normal, vec4 color) { lightDir0 = normalize(lightDir0); lightDir1 = normalize(lightDir1); float light0 = max(0.00000, dot(lightDir0, normal)); float light1 = max(0.00000, dot(lightDir1, normal)); float lightAccum = min(1.00000, (light0 + light1) * MINECRAFT_LIGHT_POWER + MINECRAFT_AMBIENT_LIGHT); return vec4(color.rgb * lightAccum, color.a); } vec4 minecraft_sample_lightmap(sampler2D lightMap, vec2 uv) { return texture(lightMap, clamp(uv / 256.000, vec2(0.500000 / 16.0000), vec2(15.5000 / 16.0000))); } #line 0 2 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, float shape) { if (shape == 0.0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 4 0 in vec3 Position; in vec4 Color; in vec2 UV0; in vec2 UV2; in vec3 Normal; uniform sampler2D Sampler2; uniform mat4 ModelViewMat; uniform mat4 ProjMat; uniform vec3 ChunkOffset; uniform float FogShape; out float vertexDistance; out vec4 vertexColor; out vec2 texCoord0; out vec4 normal; void main() { vec3 pos = Position + ChunkOffset; gl_Position = ProjMat * ModelViewMat * vec4(pos, 1.00000); vertexDistance = fog_distance(ModelViewMat, pos, FogShape); vertexColor = Color * minecraft_sample_lightmap(Sampler2, UV2); texCoord0 = UV0; normal = ProjMat * ModelViewMat * vec4(Normal, 0.00000); } version string: 150New VGPU Shader source: #version 320 es #define texture2D texture #define attribute in #define varying out precision highp float; precision highp int; #line 0 1 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, int shape) { if (shape == 0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 3 0 uniform sampler2D Sampler0; uniform vec4 ColorModulator; uniform float FogStart; uniform float FogEnd; uniform vec4 FogColor; in float vertexDistance; in vec4 vertexColor; in vec2 texCoord0; in vec4 normal; out vec4 fragColor; void main() { vec4 color = texture(Sampler0, texCoord0) * vertexColor * ColorModulator; fragColor = linear_fog(color, vertexDistance, FogStart, FogEnd, FogColor); } New VGPU Shader conversion: #version 320 es #ifdef GL_OES_texture_storage_multisample_2d_array #extension GL_OES_texture_storage_multisample_2d_array : enable #endif #ifdef GL_EXT_texture_buffer #extension GL_EXT_texture_buffer : enable #endif #ifdef GL_EXT_texture_cube_map_array #extension GL_EXT_texture_cube_map_array : enable #endif #ifdef GL_EXT_shader_non_constant_global_initializers #extension GL_EXT_shader_non_constant_global_initializers : enable #endif precision highp float; precision lowp image2D; precision lowp image2DArray; precision lowp image3D; precision lowp imageCube; precision lowp sampler2D; precision lowp sampler3D; precision lowp sampler2DShadow; precision lowp samplerCubeShadow; precision lowp sampler2DArray; precision lowp sampler2DArrayShadow; precision lowp samplerCube; #ifdef GL_EXT_texture_buffer precision lowp samplerBuffer; precision lowp imageBuffer; #endif #ifdef GL_EXT_texture_cube_map_array precision lowp imageCubeArray; precision lowp samplerCubeArray; precision lowp samplerCubeArrayShadow; #endif #ifdef GL_OES_texture_storage_multisample_2d_array precision lowp sampler2DMS; precision lowp sampler2DMSArray; #endif #line 0 1 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, float shape) { if (shape == 0.0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 3 0 uniform sampler2D Sampler0; uniform vec4 ColorModulator; uniform float FogStart; uniform float FogEnd; uniform vec4 FogColor; in float vertexDistance; in vec4 vertexColor; in vec2 texCoord0; in vec4 normal; out vec4 fragColor; void main() { vec4 color = texture(Sampler0, texCoord0) * vertexColor * ColorModulator; fragColor = linear_fog(color, vertexDistance, FogStart, FogEnd, FogColor); } version string: 150New VGPU Shader source: #version 320 es #define texture2D texture #define attribute in #define varying out precision highp float; precision highp int; #line 0 1 #define MINECRAFT_LIGHT_POWER (0.6) #define MINECRAFT_AMBIENT_LIGHT (0.4) vec4 minecraft_mix_light(vec3 lightDir0, vec3 lightDir1, vec3 normal, vec4 color) { lightDir0 = normalize(lightDir0); lightDir1 = normalize(lightDir1); float light0 = max(0.00000, dot(lightDir0, normal)); float light1 = max(0.00000, dot(lightDir1, normal)); float lightAccum = min(1.00000, (light0 + light1) * MINECRAFT_LIGHT_POWER + MINECRAFT_AMBIENT_LIGHT); return vec4(color.rgb * lightAccum, color.a); } vec4 minecraft_sample_lightmap(sampler2D lightMap, ivec2 uv) { return texture(lightMap, clamp(uv / 256.000, vec2(0.500000 / 16.0000), vec2(15.5000 / 16.0000))); } #line 0 2 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, int shape) { if (shape == 0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 4 0 in vec3 Position; in vec4 Color; in vec2 UV0; in ivec2 UV2; in vec3 Normal; uniform sampler2D Sampler2; uniform mat4 ModelViewMat; uniform mat4 ProjMat; uniform vec3 ChunkOffset; uniform int FogShape; out float vertexDistance; out vec4 vertexColor; out vec2 texCoord0; out vec4 normal; void main() { vec3 pos = Position + ChunkOffset; gl_Position = ProjMat * ModelViewMat * vec4(pos, 1.00000); vertexDistance = fog_distance(ModelViewMat, pos, FogShape); vertexColor = Color * minecraft_sample_lightmap(Sampler2, UV2); texCoord0 = UV0; normal = ProjMat * ModelViewMat * vec4(Normal, 0.00000); } New VGPU Shader conversion: #version 320 es #ifdef GL_OES_texture_storage_multisample_2d_array #extension GL_OES_texture_storage_multisample_2d_array : enable #endif #ifdef GL_EXT_texture_buffer #extension GL_EXT_texture_buffer : enable #endif #ifdef GL_EXT_texture_cube_map_array #extension GL_EXT_texture_cube_map_array : enable #endif #ifdef GL_EXT_shader_non_constant_global_initializers #extension GL_EXT_shader_non_constant_global_initializers : enable #endif precision highp float; precision lowp image2D; precision lowp image2DArray; precision lowp image3D; precision lowp imageCube; precision lowp sampler2D; precision lowp sampler3D; precision lowp sampler2DShadow; precision lowp samplerCubeShadow; precision lowp sampler2DArray; precision lowp sampler2DArrayShadow; precision lowp samplerCube; #ifdef GL_EXT_texture_buffer precision lowp samplerBuffer; precision lowp imageBuffer; #endif #ifdef GL_EXT_texture_cube_map_array precision lowp imageCubeArray; precision lowp samplerCubeArray; precision lowp samplerCubeArrayShadow; #endif #ifdef GL_OES_texture_storage_multisample_2d_array precision lowp sampler2DMS; precision lowp sampler2DMSArray; #endif #line 0 1 #define MINECRAFT_LIGHT_POWER (0.6) #define MINECRAFT_AMBIENT_LIGHT (0.4) vec4 minecraft_mix_light(vec3 lightDir0, vec3 lightDir1, vec3 normal, vec4 color) { lightDir0 = normalize(lightDir0); lightDir1 = normalize(lightDir1); float light0 = max(0.00000, dot(lightDir0, normal)); float light1 = max(0.00000, dot(lightDir1, normal)); float lightAccum = min(1.00000, (light0 + light1) * MINECRAFT_LIGHT_POWER + MINECRAFT_AMBIENT_LIGHT); return vec4(color.rgb * lightAccum, color.a); } vec4 minecraft_sample_lightmap(sampler2D lightMap, vec2 uv) { return texture(lightMap, clamp(uv / 256.000, vec2(0.500000 / 16.0000), vec2(15.5000 / 16.0000))); } #line 0 2 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, float shape) { if (shape == 0.0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 4 0 in vec3 Position; in vec4 Color; in vec2 UV0; in vec2 UV2; in vec3 Normal; uniform sampler2D Sampler2; uniform mat4 ModelViewMat; uniform mat4 ProjMat; uniform vec3 ChunkOffset; uniform float FogShape; out float vertexDistance; out vec4 vertexColor; out vec2 texCoord0; out vec4 normal; void main() { vec3 pos = Position + ChunkOffset; gl_Position = ProjMat * ModelViewMat * vec4(pos, 1.00000); vertexDistance = fog_distance(ModelViewMat, pos, FogShape); vertexColor = Color * minecraft_sample_lightmap(Sampler2, UV2); texCoord0 = UV0; normal = ProjMat * ModelViewMat * vec4(Normal, 0.00000); } version string: 150New VGPU Shader source: #version 320 es #define texture2D texture #define attribute in #define varying out precision highp float; precision highp int; #line 0 1 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, int shape) { if (shape == 0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 3 0 uniform sampler2D Sampler0; uniform vec4 ColorModulator; uniform float FogStart; uniform float FogEnd; uniform vec4 FogColor; in float vertexDistance; in vec4 vertexColor; in vec2 texCoord0; in vec4 normal; out vec4 fragColor; void main() { vec4 color = texture(Sampler0, texCoord0) * vertexColor * ColorModulator; if (color.a < 0.500000) { discard; } fragColor = linear_fog(color, vertexDistance, FogStart, FogEnd, FogColor); } New VGPU Shader conversion: #version 320 es #ifdef GL_OES_texture_storage_multisample_2d_array #extension GL_OES_texture_storage_multisample_2d_array : enable #endif #ifdef GL_EXT_texture_buffer #extension GL_EXT_texture_buffer : enable #endif #ifdef GL_EXT_texture_cube_map_array #extension GL_EXT_texture_cube_map_array : enable #endif #ifdef GL_EXT_shader_non_constant_global_initializers #extension GL_EXT_shader_non_constant_global_initializers : enable #endif precision highp float; precision lowp image2D; precision lowp image2DArray; precision lowp image3D; precision lowp imageCube; precision lowp sampler2D; precision lowp sampler3D; precision lowp sampler2DShadow; precision lowp samplerCubeShadow; precision lowp sampler2DArray; precision lowp sampler2DArrayShadow; precision lowp samplerCube; #ifdef GL_EXT_texture_buffer precision lowp samplerBuffer; precision lowp imageBuffer; #endif #ifdef GL_EXT_texture_cube_map_array precision lowp imageCubeArray; precision lowp samplerCubeArray; precision lowp samplerCubeArrayShadow; #endif #ifdef GL_OES_texture_storage_multisample_2d_array precision lowp sampler2DMS; precision lowp sampler2DMSArray; #endif #line 0 1 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, float shape) { if (shape == 0.0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 3 0 uniform sampler2D Sampler0; uniform vec4 ColorModulator; uniform float FogStart; uniform float FogEnd; uniform vec4 FogColor; in float vertexDistance; in vec4 vertexColor; in vec2 texCoord0; in vec4 normal; out vec4 fragColor; void main() { vec4 color = texture(Sampler0, texCoord0) * vertexColor * ColorModulator; if (color.a < 0.500000) { discard; } fragColor = linear_fog(color, vertexDistance, FogStart, FogEnd, FogColor); } version string: 150New VGPU Shader source: #version 320 es #define texture2D texture #define attribute in #define varying out precision highp float; precision highp int; #line 0 1 #define MINECRAFT_LIGHT_POWER (0.6) #define MINECRAFT_AMBIENT_LIGHT (0.4) vec4 minecraft_mix_light(vec3 lightDir0, vec3 lightDir1, vec3 normal, vec4 color) { lightDir0 = normalize(lightDir0); lightDir1 = normalize(lightDir1); float light0 = max(0.00000, dot(lightDir0, normal)); float light1 = max(0.00000, dot(lightDir1, normal)); float lightAccum = min(1.00000, (light0 + light1) * MINECRAFT_LIGHT_POWER + MINECRAFT_AMBIENT_LIGHT); return vec4(color.rgb * lightAccum, color.a); } vec4 minecraft_sample_lightmap(sampler2D lightMap, ivec2 uv) { return texture(lightMap, clamp(uv / 256.000, vec2(0.500000 / 16.0000), vec2(15.5000 / 16.0000))); } #line 0 2 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, int shape) { if (shape == 0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 4 0 in vec3 Position; in vec4 Color; in vec2 UV0; in ivec2 UV2; in vec3 Normal; uniform sampler2D Sampler2; uniform mat4 ModelViewMat; uniform mat4 ProjMat; uniform vec3 ChunkOffset; uniform int FogShape; out float vertexDistance; out vec4 vertexColor; out vec2 texCoord0; out vec4 normal; void main() { vec3 pos = Position + ChunkOffset; gl_Position = ProjMat * ModelViewMat * vec4(pos, 1.00000); vertexDistance = fog_distance(ModelViewMat, pos, FogShape); vertexColor = Color * minecraft_sample_lightmap(Sampler2, UV2); texCoord0 = UV0; normal = ProjMat * ModelViewMat * vec4(Normal, 0.00000); } New VGPU Shader conversion: #version 320 es #ifdef GL_OES_texture_storage_multisample_2d_array #extension GL_OES_texture_storage_multisample_2d_array : enable #endif #ifdef GL_EXT_texture_buffer #extension GL_EXT_texture_buffer : enable #endif #ifdef GL_EXT_texture_cube_map_array #extension GL_EXT_texture_cube_map_array : enable #endif #ifdef GL_EXT_shader_non_constant_global_initializers #extension GL_EXT_shader_non_constant_global_initializers : enable #endif precision highp float; precision lowp image2D; precision lowp image2DArray; precision lowp image3D; precision lowp imageCube; precision lowp sampler2D; precision lowp sampler3D; precision lowp sampler2DShadow; precision lowp samplerCubeShadow; precision lowp sampler2DArray; precision lowp sampler2DArrayShadow; precision lowp samplerCube; #ifdef GL_EXT_texture_buffer precision lowp samplerBuffer; precision lowp imageBuffer; #endif #ifdef GL_EXT_texture_cube_map_array precision lowp imageCubeArray; precision lowp samplerCubeArray; precision lowp samplerCubeArrayShadow; #endif #ifdef GL_OES_texture_storage_multisample_2d_array precision lowp sampler2DMS; precision lowp sampler2DMSArray; #endif #line 0 1 #define MINECRAFT_LIGHT_POWER (0.6) #define MINECRAFT_AMBIENT_LIGHT (0.4) vec4 minecraft_mix_light(vec3 lightDir0, vec3 lightDir1, vec3 normal, vec4 color) { lightDir0 = normalize(lightDir0); lightDir1 = normalize(lightDir1); float light0 = max(0.00000, dot(lightDir0, normal)); float light1 = max(0.00000, dot(lightDir1, normal)); float lightAccum = min(1.00000, (light0 + light1) * MINECRAFT_LIGHT_POWER + MINECRAFT_AMBIENT_LIGHT); return vec4(color.rgb * lightAccum, color.a); } vec4 minecraft_sample_lightmap(sampler2D lightMap, vec2 uv) { return texture(lightMap, clamp(uv / 256.000, vec2(0.500000 / 16.0000), vec2(15.5000 / 16.0000))); } #line 0 2 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, float shape) { if (shape == 0.0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 4 0 in vec3 Position; in vec4 Color; in vec2 UV0; in vec2 UV2; in vec3 Normal; uniform sampler2D Sampler2; uniform mat4 ModelViewMat; uniform mat4 ProjMat; uniform vec3 ChunkOffset; uniform float FogShape; out float vertexDistance; out vec4 vertexColor; out vec2 texCoord0; out vec4 normal; void main() { vec3 pos = Position + ChunkOffset; gl_Position = ProjMat * ModelViewMat * vec4(pos, 1.00000); vertexDistance = fog_distance(ModelViewMat, pos, FogShape); vertexColor = Color * minecraft_sample_lightmap(Sampler2, UV2); texCoord0 = UV0; normal = ProjMat * ModelViewMat * vec4(Normal, 0.00000); } version string: 150New VGPU Shader source: #version 320 es #define texture2D texture #define attribute in #define varying out precision highp float; precision highp int; #line 0 1 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, int shape) { if (shape == 0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 3 0 uniform sampler2D Sampler0; uniform vec4 ColorModulator; uniform float FogStart; uniform float FogEnd; uniform vec4 FogColor; in float vertexDistance; in vec4 vertexColor; in vec2 texCoord0; in vec4 normal; out vec4 fragColor; void main() { vec4 color = texture(Sampler0, texCoord0) * vertexColor * ColorModulator; if (color.a < 0.100000) { discard; } fragColor = linear_fog(color, vertexDistance, FogStart, FogEnd, FogColor); } New VGPU Shader conversion: #version 320 es #ifdef GL_OES_texture_storage_multisample_2d_array #extension GL_OES_texture_storage_multisample_2d_array : enable #endif #ifdef GL_EXT_texture_buffer #extension GL_EXT_texture_buffer : enable #endif #ifdef GL_EXT_texture_cube_map_array #extension GL_EXT_texture_cube_map_array : enable #endif #ifdef GL_EXT_shader_non_constant_global_initializers #extension GL_EXT_shader_non_constant_global_initializers : enable #endif precision highp float; precision lowp image2D; precision lowp image2DArray; precision lowp image3D; precision lowp imageCube; precision lowp sampler2D; precision lowp sampler3D; precision lowp sampler2DShadow; precision lowp samplerCubeShadow; precision lowp sampler2DArray; precision lowp sampler2DArrayShadow; precision lowp samplerCube; #ifdef GL_EXT_texture_buffer precision lowp samplerBuffer; precision lowp imageBuffer; #endif #ifdef GL_EXT_texture_cube_map_array precision lowp imageCubeArray; precision lowp samplerCubeArray; precision lowp samplerCubeArrayShadow; #endif #ifdef GL_OES_texture_storage_multisample_2d_array precision lowp sampler2DMS; precision lowp sampler2DMSArray; #endif #line 0 1 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, float shape) { if (shape == 0.0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 3 0 uniform sampler2D Sampler0; uniform vec4 ColorModulator; uniform float FogStart; uniform float FogEnd; uniform vec4 FogColor; in float vertexDistance; in vec4 vertexColor; in vec2 texCoord0; in vec4 normal; out vec4 fragColor; void main() { vec4 color = texture(Sampler0, texCoord0) * vertexColor * ColorModulator; if (color.a < 0.100000) { discard; } fragColor = linear_fog(color, vertexDistance, FogStart, FogEnd, FogColor); } version string: 150New VGPU Shader source: #version 320 es #define texture2D texture #define attribute in #define varying out precision highp float; precision highp int; #line 0 1 #define MINECRAFT_LIGHT_POWER (0.6) #define MINECRAFT_AMBIENT_LIGHT (0.4) vec4 minecraft_mix_light(vec3 lightDir0, vec3 lightDir1, vec3 normal, vec4 color) { lightDir0 = normalize(lightDir0); lightDir1 = normalize(lightDir1); float light0 = max(0.00000, dot(lightDir0, normal)); float light1 = max(0.00000, dot(lightDir1, normal)); float lightAccum = min(1.00000, (light0 + light1) * MINECRAFT_LIGHT_POWER + MINECRAFT_AMBIENT_LIGHT); return vec4(color.rgb * lightAccum, color.a); } vec4 minecraft_sample_lightmap(sampler2D lightMap, ivec2 uv) { return texture(lightMap, clamp(uv / 256.000, vec2(0.500000 / 16.0000), vec2(15.5000 / 16.0000))); } #line 0 2 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, int shape) { if (shape == 0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 4 0 in vec3 Position; in vec4 Color; in vec2 UV0; in ivec2 UV2; in vec3 Normal; uniform sampler2D Sampler2; uniform mat4 ModelViewMat; uniform mat4 ProjMat; uniform vec3 ChunkOffset; uniform int FogShape; out float vertexDistance; out vec4 vertexColor; out vec2 texCoord0; out vec4 normal; void main() { vec3 pos = Position + ChunkOffset; gl_Position = ProjMat * ModelViewMat * vec4(pos, 1.00000); vertexDistance = fog_distance(ModelViewMat, pos, FogShape); vertexColor = Color * minecraft_sample_lightmap(Sampler2, UV2); texCoord0 = UV0; normal = ProjMat * ModelViewMat * vec4(Normal, 0.00000); } New VGPU Shader conversion: #version 320 es #ifdef GL_OES_texture_storage_multisample_2d_array #extension GL_OES_texture_storage_multisample_2d_array : enable #endif #ifdef GL_EXT_texture_buffer #extension GL_EXT_texture_buffer : enable #endif #ifdef GL_EXT_texture_cube_map_array #extension GL_EXT_texture_cube_map_array : enable #endif #ifdef GL_EXT_shader_non_constant_global_initializers #extension GL_EXT_shader_non_constant_global_initializers : enable #endif precision highp float; precision lowp image2D; precision lowp image2DArray; precision lowp image3D; precision lowp imageCube; precision lowp sampler2D; precision lowp sampler3D; precision lowp sampler2DShadow; precision lowp samplerCubeShadow; precision lowp sampler2DArray; precision lowp sampler2DArrayShadow; precision lowp samplerCube; #ifdef GL_EXT_texture_buffer precision lowp samplerBuffer; precision lowp imageBuffer; #endif #ifdef GL_EXT_texture_cube_map_array precision lowp imageCubeArray; precision lowp samplerCubeArray; precision lowp samplerCubeArrayShadow; #endif #ifdef GL_OES_texture_storage_multisample_2d_array precision lowp sampler2DMS; precision lowp sampler2DMSArray; #endif #line 0 1 #define MINECRAFT_LIGHT_POWER (0.6) #define MINECRAFT_AMBIENT_LIGHT (0.4) vec4 minecraft_mix_light(vec3 lightDir0, vec3 lightDir1, vec3 normal, vec4 color) { lightDir0 = normalize(lightDir0); lightDir1 = normalize(lightDir1); float light0 = max(0.00000, dot(lightDir0, normal)); float light1 = max(0.00000, dot(lightDir1, normal)); float lightAccum = min(1.00000, (light0 + light1) * MINECRAFT_LIGHT_POWER + MINECRAFT_AMBIENT_LIGHT); return vec4(color.rgb * lightAccum, color.a); } vec4 minecraft_sample_lightmap(sampler2D lightMap, vec2 uv) { return texture(lightMap, clamp(uv / 256.000, vec2(0.500000 / 16.0000), vec2(15.5000 / 16.0000))); } #line 0 2 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, float shape) { if (shape == 0.0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 4 0 in vec3 Position; in vec4 Color; in vec2 UV0; in vec2 UV2; in vec3 Normal; uniform sampler2D Sampler2; uniform mat4 ModelViewMat; uniform mat4 ProjMat; uniform vec3 ChunkOffset; uniform float FogShape; out float vertexDistance; out vec4 vertexColor; out vec2 texCoord0; out vec4 normal; void main() { vec3 pos = Position + ChunkOffset; gl_Position = ProjMat * ModelViewMat * vec4(pos, 1.00000); vertexDistance = fog_distance(ModelViewMat, pos, FogShape); vertexColor = Color * minecraft_sample_lightmap(Sampler2, UV2); texCoord0 = UV0; normal = ProjMat * ModelViewMat * vec4(Normal, 0.00000); } version string: 150New VGPU Shader source: #version 320 es #define texture2D texture #define attribute in #define varying out precision highp float; precision highp int; #line 0 1 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, int shape) { if (shape == 0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 3 0 uniform sampler2D Sampler0; uniform vec4 ColorModulator; uniform float FogStart; uniform float FogEnd; uniform vec4 FogColor; in float vertexDistance; in vec4 vertexColor; in vec2 texCoord0; in vec4 normal; out vec4 fragColor; void main() { vec4 color = texture(Sampler0, texCoord0) * vertexColor * ColorModulator; fragColor = linear_fog(color, vertexDistance, FogStart, FogEnd, FogColor); } New VGPU Shader conversion: #version 320 es #ifdef GL_OES_texture_storage_multisample_2d_array #extension GL_OES_texture_storage_multisample_2d_array : enable #endif #ifdef GL_EXT_texture_buffer #extension GL_EXT_texture_buffer : enable #endif #ifdef GL_EXT_texture_cube_map_array #extension GL_EXT_texture_cube_map_array : enable #endif #ifdef GL_EXT_shader_non_constant_global_initializers #extension GL_EXT_shader_non_constant_global_initializers : enable #endif precision highp float; precision lowp image2D; precision lowp image2DArray; precision lowp image3D; precision lowp imageCube; precision lowp sampler2D; precision lowp sampler3D; precision lowp sampler2DShadow; precision lowp samplerCubeShadow; precision lowp sampler2DArray; precision lowp sampler2DArrayShadow; precision lowp samplerCube; #ifdef GL_EXT_texture_buffer precision lowp samplerBuffer; precision lowp imageBuffer; #endif #ifdef GL_EXT_texture_cube_map_array precision lowp imageCubeArray; precision lowp samplerCubeArray; precision lowp samplerCubeArrayShadow; #endif #ifdef GL_OES_texture_storage_multisample_2d_array precision lowp sampler2DMS; precision lowp sampler2DMSArray; #endif #line 0 1 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, float shape) { if (shape == 0.0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 3 0 uniform sampler2D Sampler0; uniform vec4 ColorModulator; uniform float FogStart; uniform float FogEnd; uniform vec4 FogColor; in float vertexDistance; in vec4 vertexColor; in vec2 texCoord0; in vec4 normal; out vec4 fragColor; void main() { vec4 color = texture(Sampler0, texCoord0) * vertexColor * ColorModulator; fragColor = linear_fog(color, vertexDistance, FogStart, FogEnd, FogColor); } version string: 150New VGPU Shader source: #version 320 es #define texture2D texture #define attribute in #define varying out precision highp float; precision highp int; in vec3 Position; in vec4 Color; in vec2 UV0; in ivec2 UV2; in vec3 Normal; uniform sampler2D Sampler2; uniform mat4 ModelViewMat; uniform mat4 ProjMat; out vec4 vertexColor; out vec2 texCoord0; out vec4 normal; void main() { gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.00000); vertexColor = Color * texelFetch(Sampler2, UV2 / 16, 0); texCoord0 = UV0; normal = ProjMat * ModelViewMat * vec4(Normal, 0.00000); } New VGPU Shader conversion: #version 320 es #ifdef GL_OES_texture_storage_multisample_2d_array #extension GL_OES_texture_storage_multisample_2d_array : enable #endif #ifdef GL_EXT_texture_buffer #extension GL_EXT_texture_buffer : enable #endif #ifdef GL_EXT_texture_cube_map_array #extension GL_EXT_texture_cube_map_array : enable #endif #ifdef GL_EXT_shader_non_constant_global_initializers #extension GL_EXT_shader_non_constant_global_initializers : enable #endif precision highp float; precision lowp image2D; precision lowp image2DArray; precision lowp image3D; precision lowp imageCube; precision lowp sampler2D; precision lowp sampler3D; precision lowp sampler2DShadow; precision lowp samplerCubeShadow; precision lowp sampler2DArray; precision lowp sampler2DArrayShadow; precision lowp samplerCube; #ifdef GL_EXT_texture_buffer precision lowp samplerBuffer; precision lowp imageBuffer; #endif #ifdef GL_EXT_texture_cube_map_array precision lowp imageCubeArray; precision lowp samplerCubeArray; precision lowp samplerCubeArrayShadow; #endif #ifdef GL_OES_texture_storage_multisample_2d_array precision lowp sampler2DMS; precision lowp sampler2DMSArray; #endif vec4 vgpu_texelFetch(sampler2D sampler, vec2 P, float lod){return texelFetch(sampler, ivec2(P), int(lod));} vec4 vgpu_texelFetch(sampler3D sampler, vec3 P, float lod){return texelFetch(sampler, ivec3(P), int(lod));} vec4 vgpu_texelFetch(sampler2DArray sampler, vec3 P, float lod){return texelFetch(sampler, ivec3(P), int(lod));} #ifdef GL_EXT_texture_buffer vec4 vgpu_texelFetch(samplerBuffer sampler, float P){return texelFetch(sampler, int(P));} #endif #ifdef GL_OES_texture_storage_multisample_2d_array vec4 vgpu_texelFetch(sampler2DMS sampler, vec2 P, float _sample){return texelFetch(sampler, ivec2(P), int(_sample));} vec4 vgpu_texelFetch(sampler2DMSArray sampler, vec3 P, float _sample){return texelFetch(sampler, ivec3(P), int(_sample));} #endif in vec3 Position; in vec4 Color; in vec2 UV0; in vec2 UV2; in vec3 Normal; uniform sampler2D Sampler2; uniform mat4 ModelViewMat; uniform mat4 ProjMat; out vec4 vertexColor; out vec2 texCoord0; out vec4 normal; void main() { gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.00000); vertexColor = Color * vgpu_texelFetch(Sampler2, UV2 / 16.0, 0.0); texCoord0 = UV0; normal = ProjMat * ModelViewMat * vec4(Normal, 0.00000); } version string: 150New VGPU Shader source: #version 320 es #define texture2D texture #define attribute in #define varying out precision highp float; precision highp int; uniform sampler2D Sampler0; uniform sampler2D Sampler2; uniform vec4 ColorModulator; in vec4 vertexColor; in vec2 texCoord0; in vec4 normal; out vec4 fragColor; void main() { vec4 color = texture(Sampler0, texCoord0) * vertexColor; fragColor = color * ColorModulator; } New VGPU Shader conversion: #version 320 es #ifdef GL_OES_texture_storage_multisample_2d_array #extension GL_OES_texture_storage_multisample_2d_array : enable #endif #ifdef GL_EXT_texture_buffer #extension GL_EXT_texture_buffer : enable #endif #ifdef GL_EXT_texture_cube_map_array #extension GL_EXT_texture_cube_map_array : enable #endif #ifdef GL_EXT_shader_non_constant_global_initializers #extension GL_EXT_shader_non_constant_global_initializers : enable #endif precision highp float; precision lowp image2D; precision lowp image2DArray; precision lowp image3D; precision lowp imageCube; precision lowp sampler2D; precision lowp sampler3D; precision lowp sampler2DShadow; precision lowp samplerCubeShadow; precision lowp sampler2DArray; precision lowp sampler2DArrayShadow; precision lowp samplerCube; #ifdef GL_EXT_texture_buffer precision lowp samplerBuffer; precision lowp imageBuffer; #endif #ifdef GL_EXT_texture_cube_map_array precision lowp imageCubeArray; precision lowp samplerCubeArray; precision lowp samplerCubeArrayShadow; #endif #ifdef GL_OES_texture_storage_multisample_2d_array precision lowp sampler2DMS; precision lowp sampler2DMSArray; #endif uniform sampler2D Sampler0; uniform sampler2D Sampler2; uniform vec4 ColorModulator; in vec4 vertexColor; in vec2 texCoord0; in vec4 normal; out vec4 fragColor; void main() { vec4 color = texture(Sampler0, texCoord0) * vertexColor; fragColor = color * ColorModulator; } version string: 150New VGPU Shader source: #version 320 es #define texture2D texture #define attribute in #define varying out precision highp float; precision highp int; in vec3 Position; in vec4 Color; in vec2 UV0; in vec2 UV2; in vec3 Normal; uniform mat4 ModelViewMat; uniform mat4 ProjMat; out vec4 vertexColor; out vec2 texCoord0; out vec2 texCoord2; out vec4 normal; void main() { gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.00000); vertexColor = Color; texCoord0 = UV0; texCoord2 = UV2; normal = ProjMat * ModelViewMat * vec4(Normal, 0.00000); } New VGPU Shader conversion: #version 320 es #ifdef GL_OES_texture_storage_multisample_2d_array #extension GL_OES_texture_storage_multisample_2d_array : enable #endif #ifdef GL_EXT_texture_buffer #extension GL_EXT_texture_buffer : enable #endif #ifdef GL_EXT_texture_cube_map_array #extension GL_EXT_texture_cube_map_array : enable #endif #ifdef GL_EXT_shader_non_constant_global_initializers #extension GL_EXT_shader_non_constant_global_initializers : enable #endif precision highp float; precision lowp image2D; precision lowp image2DArray; precision lowp image3D; precision lowp imageCube; precision lowp sampler2D; precision lowp sampler3D; precision lowp sampler2DShadow; precision lowp samplerCubeShadow; precision lowp sampler2DArray; precision lowp sampler2DArrayShadow; precision lowp samplerCube; #ifdef GL_EXT_texture_buffer precision lowp samplerBuffer; precision lowp imageBuffer; #endif #ifdef GL_EXT_texture_cube_map_array precision lowp imageCubeArray; precision lowp samplerCubeArray; precision lowp samplerCubeArrayShadow; #endif #ifdef GL_OES_texture_storage_multisample_2d_array precision lowp sampler2DMS; precision lowp sampler2DMSArray; #endif in vec3 Position; in vec4 Color; in vec2 UV0; in vec2 UV2; in vec3 Normal; uniform mat4 ModelViewMat; uniform mat4 ProjMat; out vec4 vertexColor; out vec2 texCoord0; out vec2 texCoord2; out vec4 normal; void main() { gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.00000); vertexColor = Color; texCoord0 = UV0; texCoord2 = UV2; normal = ProjMat * ModelViewMat * vec4(Normal, 0.00000); } version string: 150New VGPU Shader source: #version 320 es #define texture2D texture #define attribute in #define varying out precision highp float; precision highp int; uniform sampler2D Sampler0; uniform vec4 ColorModulator; in vec4 vertexColor; in vec2 texCoord0; in vec2 texCoord2; in vec4 normal; out vec4 fragColor; void main() { vec4 color = texture(Sampler0, texCoord0) * vertexColor; fragColor = color * ColorModulator; } New VGPU Shader conversion: #version 320 es #ifdef GL_OES_texture_storage_multisample_2d_array #extension GL_OES_texture_storage_multisample_2d_array : enable #endif #ifdef GL_EXT_texture_buffer #extension GL_EXT_texture_buffer : enable #endif #ifdef GL_EXT_texture_cube_map_array #extension GL_EXT_texture_cube_map_array : enable #endif #ifdef GL_EXT_shader_non_constant_global_initializers #extension GL_EXT_shader_non_constant_global_initializers : enable #endif precision highp float; precision lowp image2D; precision lowp image2DArray; precision lowp image3D; precision lowp imageCube; precision lowp sampler2D; precision lowp sampler3D; precision lowp sampler2DShadow; precision lowp samplerCubeShadow; precision lowp sampler2DArray; precision lowp sampler2DArrayShadow; precision lowp samplerCube; #ifdef GL_EXT_texture_buffer precision lowp samplerBuffer; precision lowp imageBuffer; #endif #ifdef GL_EXT_texture_cube_map_array precision lowp imageCubeArray; precision lowp samplerCubeArray; precision lowp samplerCubeArrayShadow; #endif #ifdef GL_OES_texture_storage_multisample_2d_array precision lowp sampler2DMS; precision lowp sampler2DMSArray; #endif uniform sampler2D Sampler0; uniform vec4 ColorModulator; in vec4 vertexColor; in vec2 texCoord0; in vec2 texCoord2; in vec4 normal; out vec4 fragColor; void main() { vec4 color = texture(Sampler0, texCoord0) * vertexColor; fragColor = color * ColorModulator; } version string: 150New VGPU Shader source: #version 320 es #define texture2D texture #define attribute in #define varying out precision highp float; precision highp int; #line 0 1 #define MINECRAFT_LIGHT_POWER (0.6) #define MINECRAFT_AMBIENT_LIGHT (0.4) vec4 minecraft_mix_light(vec3 lightDir0, vec3 lightDir1, vec3 normal, vec4 color) { lightDir0 = normalize(lightDir0); lightDir1 = normalize(lightDir1); float light0 = max(0.00000, dot(lightDir0, normal)); float light1 = max(0.00000, dot(lightDir1, normal)); float lightAccum = min(1.00000, (light0 + light1) * MINECRAFT_LIGHT_POWER + MINECRAFT_AMBIENT_LIGHT); return vec4(color.rgb * lightAccum, color.a); } vec4 minecraft_sample_lightmap(sampler2D lightMap, ivec2 uv) { return texture(lightMap, clamp(uv / 256.000, vec2(0.500000 / 16.0000), vec2(15.5000 / 16.0000))); } #line 0 2 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, int shape) { if (shape == 0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 4 0 in vec3 Position; in vec4 Color; in vec2 UV0; in vec2 UV1; in ivec2 UV2; in vec3 Normal; uniform sampler2D Sampler2; uniform mat4 ModelViewMat; uniform mat4 ProjMat; uniform int FogShape; uniform vec3 Light0_Direction; uniform vec3 Light1_Direction; out float vertexDistance; out vec4 vertexColor; out vec2 texCoord0; out vec2 texCoord1; out vec4 normal; void main() { gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.00000); vertexDistance = fog_distance(ModelViewMat, Position, FogShape); vertexColor = minecraft_mix_light(Light0_Direction, Light1_Direction, Normal, Color) * texelFetch(Sampler2, UV2 / 16, 0); texCoord0 = UV0; texCoord1 = UV1; normal = ProjMat * ModelViewMat * vec4(Normal, 0.00000); } New VGPU Shader conversion: #version 320 es #ifdef GL_OES_texture_storage_multisample_2d_array #extension GL_OES_texture_storage_multisample_2d_array : enable #endif #ifdef GL_EXT_texture_buffer #extension GL_EXT_texture_buffer : enable #endif #ifdef GL_EXT_texture_cube_map_array #extension GL_EXT_texture_cube_map_array : enable #endif #ifdef GL_EXT_shader_non_constant_global_initializers #extension GL_EXT_shader_non_constant_global_initializers : enable #endif precision highp float; precision lowp image2D; precision lowp image2DArray; precision lowp image3D; precision lowp imageCube; precision lowp sampler2D; precision lowp sampler3D; precision lowp sampler2DShadow; precision lowp samplerCubeShadow; precision lowp sampler2DArray; precision lowp sampler2DArrayShadow; precision lowp samplerCube; #ifdef GL_EXT_texture_buffer precision lowp samplerBuffer; precision lowp imageBuffer; #endif #ifdef GL_EXT_texture_cube_map_array precision lowp imageCubeArray; precision lowp samplerCubeArray; precision lowp samplerCubeArrayShadow; #endif #ifdef GL_OES_texture_storage_multisample_2d_array precision lowp sampler2DMS; precision lowp sampler2DMSArray; #endif vec4 vgpu_texelFetch(sampler2D sampler, vec2 P, float lod){return texelFetch(sampler, ivec2(P), int(lod));} vec4 vgpu_texelFetch(sampler3D sampler, vec3 P, float lod){return texelFetch(sampler, ivec3(P), int(lod));} vec4 vgpu_texelFetch(sampler2DArray sampler, vec3 P, float lod){return texelFetch(sampler, ivec3(P), int(lod));} #ifdef GL_EXT_texture_buffer vec4 vgpu_texelFetch(samplerBuffer sampler, float P){return texelFetch(sampler, int(P));} #endif #ifdef GL_OES_texture_storage_multisample_2d_array vec4 vgpu_texelFetch(sampler2DMS sampler, vec2 P, float _sample){return texelFetch(sampler, ivec2(P), int(_sample));} vec4 vgpu_texelFetch(sampler2DMSArray sampler, vec3 P, float _sample){return texelFetch(sampler, ivec3(P), int(_sample));} #endif #line 0 1 #define MINECRAFT_LIGHT_POWER (0.6) #define MINECRAFT_AMBIENT_LIGHT (0.4) vec4 minecraft_mix_light(vec3 lightDir0, vec3 lightDir1, vec3 normal, vec4 color) { lightDir0 = normalize(lightDir0); lightDir1 = normalize(lightDir1); float light0 = max(0.00000, dot(lightDir0, normal)); float light1 = max(0.00000, dot(lightDir1, normal)); float lightAccum = min(1.00000, (light0 + light1) * MINECRAFT_LIGHT_POWER + MINECRAFT_AMBIENT_LIGHT); return vec4(color.rgb * lightAccum, color.a); } vec4 minecraft_sample_lightmap(sampler2D lightMap, vec2 uv) { return texture(lightMap, clamp(uv / 256.000, vec2(0.500000 / 16.0000), vec2(15.5000 / 16.0000))); } #line 0 2 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, float shape) { if (shape == 0.0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 4 0 in vec3 Position; in vec4 Color; in vec2 UV0; in vec2 UV1; in vec2 UV2; in vec3 Normal; uniform sampler2D Sampler2; uniform mat4 ModelViewMat; uniform mat4 ProjMat; uniform float FogShape; uniform vec3 Light0_Direction; uniform vec3 Light1_Direction; out float vertexDistance; out vec4 vertexColor; out vec2 texCoord0; out vec2 texCoord1; out vec4 normal; void main() { gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.00000); vertexDistance = fog_distance(ModelViewMat, Position, FogShape); vertexColor = minecraft_mix_light(Light0_Direction, Light1_Direction, Normal, Color) * vgpu_texelFetch(Sampler2, UV2 / 16.0, 0.0); texCoord0 = UV0; texCoord1 = UV1; normal = ProjMat * ModelViewMat * vec4(Normal, 0.00000); } version string: 150New VGPU Shader source: #version 320 es #define texture2D texture #define attribute in #define varying out precision highp float; precision highp int; #line 0 1 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, int shape) { if (shape == 0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 3 0 uniform sampler2D Sampler0; uniform vec4 ColorModulator; uniform float FogStart; uniform float FogEnd; uniform vec4 FogColor; in float vertexDistance; in vec4 vertexColor; in vec2 texCoord0; in vec2 texCoord1; in vec4 normal; out vec4 fragColor; void main() { vec4 color = texture(Sampler0, texCoord0) * vertexColor * ColorModulator; if (color.a < 0.100000) { discard; } fragColor = linear_fog(color, vertexDistance, FogStart, FogEnd, FogColor); } New VGPU Shader conversion: #version 320 es #ifdef GL_OES_texture_storage_multisample_2d_array #extension GL_OES_texture_storage_multisample_2d_array : enable #endif #ifdef GL_EXT_texture_buffer #extension GL_EXT_texture_buffer : enable #endif #ifdef GL_EXT_texture_cube_map_array #extension GL_EXT_texture_cube_map_array : enable #endif #ifdef GL_EXT_shader_non_constant_global_initializers #extension GL_EXT_shader_non_constant_global_initializers : enable #endif precision highp float; precision lowp image2D; precision lowp image2DArray; precision lowp image3D; precision lowp imageCube; precision lowp sampler2D; precision lowp sampler3D; precision lowp sampler2DShadow; precision lowp samplerCubeShadow; precision lowp sampler2DArray; precision lowp sampler2DArrayShadow; precision lowp samplerCube; #ifdef GL_EXT_texture_buffer precision lowp samplerBuffer; precision lowp imageBuffer; #endif #ifdef GL_EXT_texture_cube_map_array precision lowp imageCubeArray; precision lowp samplerCubeArray; precision lowp samplerCubeArrayShadow; #endif #ifdef GL_OES_texture_storage_multisample_2d_array precision lowp sampler2DMS; precision lowp sampler2DMSArray; #endif #line 0 1 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, float shape) { if (shape == 0.0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 3 0 uniform sampler2D Sampler0; uniform vec4 ColorModulator; uniform float FogStart; uniform float FogEnd; uniform vec4 FogColor; in float vertexDistance; in vec4 vertexColor; in vec2 texCoord0; in vec2 texCoord1; in vec4 normal; out vec4 fragColor; void main() { vec4 color = texture(Sampler0, texCoord0) * vertexColor * ColorModulator; if (color.a < 0.100000) { discard; } fragColor = linear_fog(color, vertexDistance, FogStart, FogEnd, FogColor); } version string: 150New VGPU Shader source: #version 320 es #define texture2D texture #define attribute in #define varying out precision highp float; precision highp int; #line 0 1 #define MINECRAFT_LIGHT_POWER (0.6) #define MINECRAFT_AMBIENT_LIGHT (0.4) vec4 minecraft_mix_light(vec3 lightDir0, vec3 lightDir1, vec3 normal, vec4 color) { lightDir0 = normalize(lightDir0); lightDir1 = normalize(lightDir1); float light0 = max(0.00000, dot(lightDir0, normal)); float light1 = max(0.00000, dot(lightDir1, normal)); float lightAccum = min(1.00000, (light0 + light1) * MINECRAFT_LIGHT_POWER + MINECRAFT_AMBIENT_LIGHT); return vec4(color.rgb * lightAccum, color.a); } vec4 minecraft_sample_lightmap(sampler2D lightMap, ivec2 uv) { return texture(lightMap, clamp(uv / 256.000, vec2(0.500000 / 16.0000), vec2(15.5000 / 16.0000))); } #line 0 2 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, int shape) { if (shape == 0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 4 0 in vec3 Position; in vec4 Color; in vec2 UV0; in ivec2 UV1; in ivec2 UV2; in vec3 Normal; uniform sampler2D Sampler1; uniform sampler2D Sampler2; uniform mat4 ModelViewMat; uniform mat4 ProjMat; uniform mat3 IViewRotMat; uniform int FogShape; uniform vec3 Light0_Direction; uniform vec3 Light1_Direction; out float vertexDistance; out vec4 vertexColor; out vec4 lightMapColor; out vec4 overlayColor; out vec2 texCoord0; out vec4 normal; void main() { gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.00000); vertexDistance = fog_distance(ModelViewMat, IViewRotMat * Position, FogShape); vertexColor = minecraft_mix_light(Light0_Direction, Light1_Direction, Normal, Color); lightMapColor = texelFetch(Sampler2, UV2 / 16, 0); overlayColor = texelFetch(Sampler1, UV1, 0); texCoord0 = UV0; normal = ProjMat * ModelViewMat * vec4(Normal, 0.00000); } New VGPU Shader conversion: #version 320 es #ifdef GL_OES_texture_storage_multisample_2d_array #extension GL_OES_texture_storage_multisample_2d_array : enable #endif #ifdef GL_EXT_texture_buffer #extension GL_EXT_texture_buffer : enable #endif #ifdef GL_EXT_texture_cube_map_array #extension GL_EXT_texture_cube_map_array : enable #endif #ifdef GL_EXT_shader_non_constant_global_initializers #extension GL_EXT_shader_non_constant_global_initializers : enable #endif precision highp float; precision lowp image2D; precision lowp image2DArray; precision lowp image3D; precision lowp imageCube; precision lowp sampler2D; precision lowp sampler3D; precision lowp sampler2DShadow; precision lowp samplerCubeShadow; precision lowp sampler2DArray; precision lowp sampler2DArrayShadow; precision lowp samplerCube; #ifdef GL_EXT_texture_buffer precision lowp samplerBuffer; precision lowp imageBuffer; #endif #ifdef GL_EXT_texture_cube_map_array precision lowp imageCubeArray; precision lowp samplerCubeArray; precision lowp samplerCubeArrayShadow; #endif #ifdef GL_OES_texture_storage_multisample_2d_array precision lowp sampler2DMS; precision lowp sampler2DMSArray; #endif vec4 vgpu_texelFetch(sampler2D sampler, vec2 P, float lod){return texelFetch(sampler, ivec2(P), int(lod));} vec4 vgpu_texelFetch(sampler3D sampler, vec3 P, float lod){return texelFetch(sampler, ivec3(P), int(lod));} vec4 vgpu_texelFetch(sampler2DArray sampler, vec3 P, float lod){return texelFetch(sampler, ivec3(P), int(lod));} #ifdef GL_EXT_texture_buffer vec4 vgpu_texelFetch(samplerBuffer sampler, float P){return texelFetch(sampler, int(P));} #endif #ifdef GL_OES_texture_storage_multisample_2d_array vec4 vgpu_texelFetch(sampler2DMS sampler, vec2 P, float _sample){return texelFetch(sampler, ivec2(P), int(_sample));} vec4 vgpu_texelFetch(sampler2DMSArray sampler, vec3 P, float _sample){return texelFetch(sampler, ivec3(P), int(_sample));} #endif #line 0 1 #define MINECRAFT_LIGHT_POWER (0.6) #define MINECRAFT_AMBIENT_LIGHT (0.4) vec4 minecraft_mix_light(vec3 lightDir0, vec3 lightDir1, vec3 normal, vec4 color) { lightDir0 = normalize(lightDir0); lightDir1 = normalize(lightDir1); float light0 = max(0.00000, dot(lightDir0, normal)); float light1 = max(0.00000, dot(lightDir1, normal)); float lightAccum = min(1.00000, (light0 + light1) * MINECRAFT_LIGHT_POWER + MINECRAFT_AMBIENT_LIGHT); return vec4(color.rgb * lightAccum, color.a); } vec4 minecraft_sample_lightmap(sampler2D lightMap, vec2 uv) { return texture(lightMap, clamp(uv / 256.000, vec2(0.500000 / 16.0000), vec2(15.5000 / 16.0000))); } #line 0 2 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, float shape) { if (shape == 0.0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 4 0 in vec3 Position; in vec4 Color; in vec2 UV0; in vec2 UV1; in vec2 UV2; in vec3 Normal; uniform sampler2D Sampler1; uniform sampler2D Sampler2; uniform mat4 ModelViewMat; uniform mat4 ProjMat; uniform mat3 IViewRotMat; uniform float FogShape; uniform vec3 Light0_Direction; uniform vec3 Light1_Direction; out float vertexDistance; out vec4 vertexColor; out vec4 lightMapColor; out vec4 overlayColor; out vec2 texCoord0; out vec4 normal; void main() { gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.00000); vertexDistance = fog_distance(ModelViewMat, IViewRotMat * Position, FogShape); vertexColor = minecraft_mix_light(Light0_Direction, Light1_Direction, Normal, Color); lightMapColor = vgpu_texelFetch(Sampler2, UV2 / 16.0, 0.0); overlayColor = vgpu_texelFetch(Sampler1, UV1, 0.0); texCoord0 = UV0; normal = ProjMat * ModelViewMat * vec4(Normal, 0.00000); } version string: 150New VGPU Shader source: #version 320 es #define texture2D texture #define attribute in #define varying out precision highp float; precision highp int; #line 0 1 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, int shape) { if (shape == 0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 3 0 uniform sampler2D Sampler0; uniform vec4 ColorModulator; uniform float FogStart; uniform float FogEnd; uniform vec4 FogColor; in float vertexDistance; in vec4 vertexColor; in vec4 lightMapColor; in vec4 overlayColor; in vec2 texCoord0; in vec4 normal; out vec4 fragColor; void main() { vec4 color = texture(Sampler0, texCoord0) * vertexColor * ColorModulator; color.rgb = mix(overlayColor.rgb, color.rgb, overlayColor.a); color *= lightMapColor; fragColor = linear_fog(color, vertexDistance, FogStart, FogEnd, FogColor); } New VGPU Shader conversion: #version 320 es #ifdef GL_OES_texture_storage_multisample_2d_array #extension GL_OES_texture_storage_multisample_2d_array : enable #endif #ifdef GL_EXT_texture_buffer #extension GL_EXT_texture_buffer : enable #endif #ifdef GL_EXT_texture_cube_map_array #extension GL_EXT_texture_cube_map_array : enable #endif #ifdef GL_EXT_shader_non_constant_global_initializers #extension GL_EXT_shader_non_constant_global_initializers : enable #endif precision highp float; precision lowp image2D; precision lowp image2DArray; precision lowp image3D; precision lowp imageCube; precision lowp sampler2D; precision lowp sampler3D; precision lowp sampler2DShadow; precision lowp samplerCubeShadow; precision lowp sampler2DArray; precision lowp sampler2DArrayShadow; precision lowp samplerCube; #ifdef GL_EXT_texture_buffer precision lowp samplerBuffer; precision lowp imageBuffer; #endif #ifdef GL_EXT_texture_cube_map_array precision lowp imageCubeArray; precision lowp samplerCubeArray; precision lowp samplerCubeArrayShadow; #endif #ifdef GL_OES_texture_storage_multisample_2d_array precision lowp sampler2DMS; precision lowp sampler2DMSArray; #endif #line 0 1 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, float shape) { if (shape == 0.0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 3 0 uniform sampler2D Sampler0; uniform vec4 ColorModulator; uniform float FogStart; uniform float FogEnd; uniform vec4 FogColor; in float vertexDistance; in vec4 vertexColor; in vec4 lightMapColor; in vec4 overlayColor; in vec2 texCoord0; in vec4 normal; out vec4 fragColor; void main() { vec4 color = texture(Sampler0, texCoord0) * vertexColor * ColorModulator; color.rgb = mix(overlayColor.rgb, color.rgb, overlayColor.a); color *= lightMapColor; fragColor = linear_fog(color, vertexDistance, FogStart, FogEnd, FogColor); } version string: 150New VGPU Shader source: #version 320 es #define texture2D texture #define attribute in #define varying out precision highp float; precision highp int; #line 0 1 #define MINECRAFT_LIGHT_POWER (0.6) #define MINECRAFT_AMBIENT_LIGHT (0.4) vec4 minecraft_mix_light(vec3 lightDir0, vec3 lightDir1, vec3 normal, vec4 color) { lightDir0 = normalize(lightDir0); lightDir1 = normalize(lightDir1); float light0 = max(0.00000, dot(lightDir0, normal)); float light1 = max(0.00000, dot(lightDir1, normal)); float lightAccum = min(1.00000, (light0 + light1) * MINECRAFT_LIGHT_POWER + MINECRAFT_AMBIENT_LIGHT); return vec4(color.rgb * lightAccum, color.a); } vec4 minecraft_sample_lightmap(sampler2D lightMap, ivec2 uv) { return texture(lightMap, clamp(uv / 256.000, vec2(0.500000 / 16.0000), vec2(15.5000 / 16.0000))); } #line 0 2 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, int shape) { if (shape == 0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 4 0 in vec3 Position; in vec4 Color; in vec2 UV0; in ivec2 UV1; in ivec2 UV2; in vec3 Normal; uniform sampler2D Sampler1; uniform sampler2D Sampler2; uniform mat4 ModelViewMat; uniform mat4 ProjMat; uniform mat3 IViewRotMat; uniform int FogShape; uniform vec3 Light0_Direction; uniform vec3 Light1_Direction; out float vertexDistance; out vec4 vertexColor; out vec4 lightMapColor; out vec4 overlayColor; out vec2 texCoord0; out vec4 normal; void main() { gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.00000); vertexDistance = fog_distance(ModelViewMat, IViewRotMat * Position, FogShape); vertexColor = minecraft_mix_light(Light0_Direction, Light1_Direction, Normal, Color); lightMapColor = texelFetch(Sampler2, UV2 / 16, 0); overlayColor = texelFetch(Sampler1, UV1, 0); texCoord0 = UV0; normal = ProjMat * ModelViewMat * vec4(Normal, 0.00000); } New VGPU Shader conversion: #version 320 es #ifdef GL_OES_texture_storage_multisample_2d_array #extension GL_OES_texture_storage_multisample_2d_array : enable #endif #ifdef GL_EXT_texture_buffer #extension GL_EXT_texture_buffer : enable #endif #ifdef GL_EXT_texture_cube_map_array #extension GL_EXT_texture_cube_map_array : enable #endif #ifdef GL_EXT_shader_non_constant_global_initializers #extension GL_EXT_shader_non_constant_global_initializers : enable #endif precision highp float; precision lowp image2D; precision lowp image2DArray; precision lowp image3D; precision lowp imageCube; precision lowp sampler2D; precision lowp sampler3D; precision lowp sampler2DShadow; precision lowp samplerCubeShadow; precision lowp sampler2DArray; precision lowp sampler2DArrayShadow; precision lowp samplerCube; #ifdef GL_EXT_texture_buffer precision lowp samplerBuffer; precision lowp imageBuffer; #endif #ifdef GL_EXT_texture_cube_map_array precision lowp imageCubeArray; precision lowp samplerCubeArray; precision lowp samplerCubeArrayShadow; #endif #ifdef GL_OES_texture_storage_multisample_2d_array precision lowp sampler2DMS; precision lowp sampler2DMSArray; #endif vec4 vgpu_texelFetch(sampler2D sampler, vec2 P, float lod){return texelFetch(sampler, ivec2(P), int(lod));} vec4 vgpu_texelFetch(sampler3D sampler, vec3 P, float lod){return texelFetch(sampler, ivec3(P), int(lod));} vec4 vgpu_texelFetch(sampler2DArray sampler, vec3 P, float lod){return texelFetch(sampler, ivec3(P), int(lod));} #ifdef GL_EXT_texture_buffer vec4 vgpu_texelFetch(samplerBuffer sampler, float P){return texelFetch(sampler, int(P));} #endif #ifdef GL_OES_texture_storage_multisample_2d_array vec4 vgpu_texelFetch(sampler2DMS sampler, vec2 P, float _sample){return texelFetch(sampler, ivec2(P), int(_sample));} vec4 vgpu_texelFetch(sampler2DMSArray sampler, vec3 P, float _sample){return texelFetch(sampler, ivec3(P), int(_sample));} #endif #line 0 1 #define MINECRAFT_LIGHT_POWER (0.6) #define MINECRAFT_AMBIENT_LIGHT (0.4) vec4 minecraft_mix_light(vec3 lightDir0, vec3 lightDir1, vec3 normal, vec4 color) { lightDir0 = normalize(lightDir0); lightDir1 = normalize(lightDir1); float light0 = max(0.00000, dot(lightDir0, normal)); float light1 = max(0.00000, dot(lightDir1, normal)); float lightAccum = min(1.00000, (light0 + light1) * MINECRAFT_LIGHT_POWER + MINECRAFT_AMBIENT_LIGHT); return vec4(color.rgb * lightAccum, color.a); } vec4 minecraft_sample_lightmap(sampler2D lightMap, vec2 uv) { return texture(lightMap, clamp(uv / 256.000, vec2(0.500000 / 16.0000), vec2(15.5000 / 16.0000))); } #line 0 2 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, float shape) { if (shape == 0.0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 4 0 in vec3 Position; in vec4 Color; in vec2 UV0; in vec2 UV1; in vec2 UV2; in vec3 Normal; uniform sampler2D Sampler1; uniform sampler2D Sampler2; uniform mat4 ModelViewMat; uniform mat4 ProjMat; uniform mat3 IViewRotMat; uniform float FogShape; uniform vec3 Light0_Direction; uniform vec3 Light1_Direction; out float vertexDistance; out vec4 vertexColor; out vec4 lightMapColor; out vec4 overlayColor; out vec2 texCoord0; out vec4 normal; void main() { gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.00000); vertexDistance = fog_distance(ModelViewMat, IViewRotMat * Position, FogShape); vertexColor = minecraft_mix_light(Light0_Direction, Light1_Direction, Normal, Color); lightMapColor = vgpu_texelFetch(Sampler2, UV2 / 16.0, 0.0); overlayColor = vgpu_texelFetch(Sampler1, UV1, 0.0); texCoord0 = UV0; normal = ProjMat * ModelViewMat * vec4(Normal, 0.00000); } version string: 150New VGPU Shader source: #version 320 es #define texture2D texture #define attribute in #define varying out precision highp float; precision highp int; #line 0 1 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, int shape) { if (shape == 0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 3 0 uniform sampler2D Sampler0; uniform vec4 ColorModulator; uniform float FogStart; uniform float FogEnd; uniform vec4 FogColor; in float vertexDistance; in vec4 vertexColor; in vec4 lightMapColor; in vec4 overlayColor; in vec2 texCoord0; in vec4 normal; out vec4 fragColor; void main() { vec4 color = texture(Sampler0, texCoord0); if (color.a < 0.100000) { discard; } color *= vertexColor * ColorModulator; color.rgb = mix(overlayColor.rgb, color.rgb, overlayColor.a); color *= lightMapColor; fragColor = linear_fog(color, vertexDistance, FogStart, FogEnd, FogColor); } New VGPU Shader conversion: #version 320 es #ifdef GL_OES_texture_storage_multisample_2d_array #extension GL_OES_texture_storage_multisample_2d_array : enable #endif #ifdef GL_EXT_texture_buffer #extension GL_EXT_texture_buffer : enable #endif #ifdef GL_EXT_texture_cube_map_array #extension GL_EXT_texture_cube_map_array : enable #endif #ifdef GL_EXT_shader_non_constant_global_initializers #extension GL_EXT_shader_non_constant_global_initializers : enable #endif precision highp float; precision lowp image2D; precision lowp image2DArray; precision lowp image3D; precision lowp imageCube; precision lowp sampler2D; precision lowp sampler3D; precision lowp sampler2DShadow; precision lowp samplerCubeShadow; precision lowp sampler2DArray; precision lowp sampler2DArrayShadow; precision lowp samplerCube; #ifdef GL_EXT_texture_buffer precision lowp samplerBuffer; precision lowp imageBuffer; #endif #ifdef GL_EXT_texture_cube_map_array precision lowp imageCubeArray; precision lowp samplerCubeArray; precision lowp samplerCubeArrayShadow; #endif #ifdef GL_OES_texture_storage_multisample_2d_array precision lowp sampler2DMS; precision lowp sampler2DMSArray; #endif #line 0 1 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, float shape) { if (shape == 0.0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 3 0 uniform sampler2D Sampler0; uniform vec4 ColorModulator; uniform float FogStart; uniform float FogEnd; uniform vec4 FogColor; in float vertexDistance; in vec4 vertexColor; in vec4 lightMapColor; in vec4 overlayColor; in vec2 texCoord0; in vec4 normal; out vec4 fragColor; void main() { vec4 color = texture(Sampler0, texCoord0); if (color.a < 0.100000) { discard; } color *= vertexColor * ColorModulator; color.rgb = mix(overlayColor.rgb, color.rgb, overlayColor.a); color *= lightMapColor; fragColor = linear_fog(color, vertexDistance, FogStart, FogEnd, FogColor); } version string: 150New VGPU Shader source: #version 320 es #define texture2D texture #define attribute in #define varying out precision highp float; precision highp int; #line 0 1 #define MINECRAFT_LIGHT_POWER (0.6) #define MINECRAFT_AMBIENT_LIGHT (0.4) vec4 minecraft_mix_light(vec3 lightDir0, vec3 lightDir1, vec3 normal, vec4 color) { lightDir0 = normalize(lightDir0); lightDir1 = normalize(lightDir1); float light0 = max(0.00000, dot(lightDir0, normal)); float light1 = max(0.00000, dot(lightDir1, normal)); float lightAccum = min(1.00000, (light0 + light1) * MINECRAFT_LIGHT_POWER + MINECRAFT_AMBIENT_LIGHT); return vec4(color.rgb * lightAccum, color.a); } vec4 minecraft_sample_lightmap(sampler2D lightMap, ivec2 uv) { return texture(lightMap, clamp(uv / 256.000, vec2(0.500000 / 16.0000), vec2(15.5000 / 16.0000))); } #line 0 2 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, int shape) { if (shape == 0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 4 0 in vec3 Position; in vec4 Color; in vec2 UV0; in ivec2 UV1; in ivec2 UV2; in vec3 Normal; uniform sampler2D Sampler1; uniform sampler2D Sampler2; uniform mat4 ModelViewMat; uniform mat4 ProjMat; uniform mat3 IViewRotMat; uniform int FogShape; uniform vec3 Light0_Direction; uniform vec3 Light1_Direction; out float vertexDistance; out vec4 vertexColor; out vec4 lightMapColor; out vec4 overlayColor; out vec2 texCoord0; out vec4 normal; void main() { gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.00000); vertexDistance = fog_distance(ModelViewMat, IViewRotMat * Position, FogShape); vertexColor = minecraft_mix_light(Light0_Direction, Light1_Direction, Normal, Color); lightMapColor = texelFetch(Sampler2, UV2 / 16, 0); overlayColor = texelFetch(Sampler1, UV1, 0); texCoord0 = UV0; normal = ProjMat * ModelViewMat * vec4(Normal, 0.00000); } New VGPU Shader conversion: #version 320 es #ifdef GL_OES_texture_storage_multisample_2d_array #extension GL_OES_texture_storage_multisample_2d_array : enable #endif #ifdef GL_EXT_texture_buffer #extension GL_EXT_texture_buffer : enable #endif #ifdef GL_EXT_texture_cube_map_array #extension GL_EXT_texture_cube_map_array : enable #endif #ifdef GL_EXT_shader_non_constant_global_initializers #extension GL_EXT_shader_non_constant_global_initializers : enable #endif precision highp float; precision lowp image2D; precision lowp image2DArray; precision lowp image3D; precision lowp imageCube; precision lowp sampler2D; precision lowp sampler3D; precision lowp sampler2DShadow; precision lowp samplerCubeShadow; precision lowp sampler2DArray; precision lowp sampler2DArrayShadow; precision lowp samplerCube; #ifdef GL_EXT_texture_buffer precision lowp samplerBuffer; precision lowp imageBuffer; #endif #ifdef GL_EXT_texture_cube_map_array precision lowp imageCubeArray; precision lowp samplerCubeArray; precision lowp samplerCubeArrayShadow; #endif #ifdef GL_OES_texture_storage_multisample_2d_array precision lowp sampler2DMS; precision lowp sampler2DMSArray; #endif vec4 vgpu_texelFetch(sampler2D sampler, vec2 P, float lod){return texelFetch(sampler, ivec2(P), int(lod));} vec4 vgpu_texelFetch(sampler3D sampler, vec3 P, float lod){return texelFetch(sampler, ivec3(P), int(lod));} vec4 vgpu_texelFetch(sampler2DArray sampler, vec3 P, float lod){return texelFetch(sampler, ivec3(P), int(lod));} #ifdef GL_EXT_texture_buffer vec4 vgpu_texelFetch(samplerBuffer sampler, float P){return texelFetch(sampler, int(P));} #endif #ifdef GL_OES_texture_storage_multisample_2d_array vec4 vgpu_texelFetch(sampler2DMS sampler, vec2 P, float _sample){return texelFetch(sampler, ivec2(P), int(_sample));} vec4 vgpu_texelFetch(sampler2DMSArray sampler, vec3 P, float _sample){return texelFetch(sampler, ivec3(P), int(_sample));} #endif #line 0 1 #define MINECRAFT_LIGHT_POWER (0.6) #define MINECRAFT_AMBIENT_LIGHT (0.4) vec4 minecraft_mix_light(vec3 lightDir0, vec3 lightDir1, vec3 normal, vec4 color) { lightDir0 = normalize(lightDir0); lightDir1 = normalize(lightDir1); float light0 = max(0.00000, dot(lightDir0, normal)); float light1 = max(0.00000, dot(lightDir1, normal)); float lightAccum = min(1.00000, (light0 + light1) * MINECRAFT_LIGHT_POWER + MINECRAFT_AMBIENT_LIGHT); return vec4(color.rgb * lightAccum, color.a); } vec4 minecraft_sample_lightmap(sampler2D lightMap, vec2 uv) { return texture(lightMap, clamp(uv / 256.000, vec2(0.500000 / 16.0000), vec2(15.5000 / 16.0000))); } #line 0 2 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, float shape) { if (shape == 0.0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 4 0 in vec3 Position; in vec4 Color; in vec2 UV0; in vec2 UV1; in vec2 UV2; in vec3 Normal; uniform sampler2D Sampler1; uniform sampler2D Sampler2; uniform mat4 ModelViewMat; uniform mat4 ProjMat; uniform mat3 IViewRotMat; uniform float FogShape; uniform vec3 Light0_Direction; uniform vec3 Light1_Direction; out float vertexDistance; out vec4 vertexColor; out vec4 lightMapColor; out vec4 overlayColor; out vec2 texCoord0; out vec4 normal; void main() { gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.00000); vertexDistance = fog_distance(ModelViewMat, IViewRotMat * Position, FogShape); vertexColor = minecraft_mix_light(Light0_Direction, Light1_Direction, Normal, Color); lightMapColor = vgpu_texelFetch(Sampler2, UV2 / 16.0, 0.0); overlayColor = vgpu_texelFetch(Sampler1, UV1, 0.0); texCoord0 = UV0; normal = ProjMat * ModelViewMat * vec4(Normal, 0.00000); } version string: 150New VGPU Shader source: #version 320 es #define texture2D texture #define attribute in #define varying out precision highp float; precision highp int; #line 0 1 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, int shape) { if (shape == 0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 3 0 uniform sampler2D Sampler0; uniform vec4 ColorModulator; uniform float FogStart; uniform float FogEnd; uniform vec4 FogColor; in float vertexDistance; in vec4 vertexColor; in vec4 lightMapColor; in vec4 overlayColor; in vec2 texCoord0; in vec4 normal; out vec4 fragColor; void main() { vec4 color = texture(Sampler0, texCoord0); if (color.a < 0.100000) { discard; } color *= vertexColor * ColorModulator; color.rgb = mix(overlayColor.rgb, color.rgb, overlayColor.a); color *= lightMapColor; fragColor = linear_fog(color, vertexDistance, FogStart, FogEnd, FogColor); } New VGPU Shader conversion: #version 320 es #ifdef GL_OES_texture_storage_multisample_2d_array #extension GL_OES_texture_storage_multisample_2d_array : enable #endif #ifdef GL_EXT_texture_buffer #extension GL_EXT_texture_buffer : enable #endif #ifdef GL_EXT_texture_cube_map_array #extension GL_EXT_texture_cube_map_array : enable #endif #ifdef GL_EXT_shader_non_constant_global_initializers #extension GL_EXT_shader_non_constant_global_initializers : enable #endif precision highp float; precision lowp image2D; precision lowp image2DArray; precision lowp image3D; precision lowp imageCube; precision lowp sampler2D; precision lowp sampler3D; precision lowp sampler2DShadow; precision lowp samplerCubeShadow; precision lowp sampler2DArray; precision lowp sampler2DArrayShadow; precision lowp samplerCube; #ifdef GL_EXT_texture_buffer precision lowp samplerBuffer; precision lowp imageBuffer; #endif #ifdef GL_EXT_texture_cube_map_array precision lowp imageCubeArray; precision lowp samplerCubeArray; precision lowp samplerCubeArrayShadow; #endif #ifdef GL_OES_texture_storage_multisample_2d_array precision lowp sampler2DMS; precision lowp sampler2DMSArray; #endif #line 0 1 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, float shape) { if (shape == 0.0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 3 0 uniform sampler2D Sampler0; uniform vec4 ColorModulator; uniform float FogStart; uniform float FogEnd; uniform vec4 FogColor; in float vertexDistance; in vec4 vertexColor; in vec4 lightMapColor; in vec4 overlayColor; in vec2 texCoord0; in vec4 normal; out vec4 fragColor; void main() { vec4 color = texture(Sampler0, texCoord0); if (color.a < 0.100000) { discard; } color *= vertexColor * ColorModulator; color.rgb = mix(overlayColor.rgb, color.rgb, overlayColor.a); color *= lightMapColor; fragColor = linear_fog(color, vertexDistance, FogStart, FogEnd, FogColor); } version string: 150New VGPU Shader source: #version 320 es #define texture2D texture #define attribute in #define varying out precision highp float; precision highp int; #line 0 1 #define MINECRAFT_LIGHT_POWER (0.6) #define MINECRAFT_AMBIENT_LIGHT (0.4) vec4 minecraft_mix_light(vec3 lightDir0, vec3 lightDir1, vec3 normal, vec4 color) { lightDir0 = normalize(lightDir0); lightDir1 = normalize(lightDir1); float light0 = max(0.00000, dot(lightDir0, normal)); float light1 = max(0.00000, dot(lightDir1, normal)); float lightAccum = min(1.00000, (light0 + light1) * MINECRAFT_LIGHT_POWER + MINECRAFT_AMBIENT_LIGHT); return vec4(color.rgb * lightAccum, color.a); } vec4 minecraft_sample_lightmap(sampler2D lightMap, ivec2 uv) { return texture(lightMap, clamp(uv / 256.000, vec2(0.500000 / 16.0000), vec2(15.5000 / 16.0000))); } #line 0 2 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, int shape) { if (shape == 0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 4 0 in vec3 Position; in vec4 Color; in vec2 UV0; in ivec2 UV1; in ivec2 UV2; in vec3 Normal; uniform sampler2D Sampler1; uniform sampler2D Sampler2; uniform mat4 ModelViewMat; uniform mat4 ProjMat; uniform mat3 IViewRotMat; uniform int FogShape; uniform vec3 Light0_Direction; uniform vec3 Light1_Direction; out float vertexDistance; out vec4 vertexColor; out vec4 lightMapColor; out vec4 overlayColor; out vec2 texCoord0; out vec4 normal; void main() { gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.00000); vertexDistance = fog_distance(ModelViewMat, IViewRotMat * Position, FogShape); vertexColor = minecraft_mix_light(Light0_Direction, Light1_Direction, Normal, Color); lightMapColor = texelFetch(Sampler2, UV2 / 16, 0); overlayColor = texelFetch(Sampler1, UV1, 0); texCoord0 = UV0; normal = ProjMat * ModelViewMat * vec4(Normal, 0.00000); } New VGPU Shader conversion: #version 320 es #ifdef GL_OES_texture_storage_multisample_2d_array #extension GL_OES_texture_storage_multisample_2d_array : enable #endif #ifdef GL_EXT_texture_buffer #extension GL_EXT_texture_buffer : enable #endif #ifdef GL_EXT_texture_cube_map_array #extension GL_EXT_texture_cube_map_array : enable #endif #ifdef GL_EXT_shader_non_constant_global_initializers #extension GL_EXT_shader_non_constant_global_initializers : enable #endif precision highp float; precision lowp image2D; precision lowp image2DArray; precision lowp image3D; precision lowp imageCube; precision lowp sampler2D; precision lowp sampler3D; precision lowp sampler2DShadow; precision lowp samplerCubeShadow; precision lowp sampler2DArray; precision lowp sampler2DArrayShadow; precision lowp samplerCube; #ifdef GL_EXT_texture_buffer precision lowp samplerBuffer; precision lowp imageBuffer; #endif #ifdef GL_EXT_texture_cube_map_array precision lowp imageCubeArray; precision lowp samplerCubeArray; precision lowp samplerCubeArrayShadow; #endif #ifdef GL_OES_texture_storage_multisample_2d_array precision lowp sampler2DMS; precision lowp sampler2DMSArray; #endif vec4 vgpu_texelFetch(sampler2D sampler, vec2 P, float lod){return texelFetch(sampler, ivec2(P), int(lod));} vec4 vgpu_texelFetch(sampler3D sampler, vec3 P, float lod){return texelFetch(sampler, ivec3(P), int(lod));} vec4 vgpu_texelFetch(sampler2DArray sampler, vec3 P, float lod){return texelFetch(sampler, ivec3(P), int(lod));} #ifdef GL_EXT_texture_buffer vec4 vgpu_texelFetch(samplerBuffer sampler, float P){return texelFetch(sampler, int(P));} #endif #ifdef GL_OES_texture_storage_multisample_2d_array vec4 vgpu_texelFetch(sampler2DMS sampler, vec2 P, float _sample){return texelFetch(sampler, ivec2(P), int(_sample));} vec4 vgpu_texelFetch(sampler2DMSArray sampler, vec3 P, float _sample){return texelFetch(sampler, ivec3(P), int(_sample));} #endif #line 0 1 #define MINECRAFT_LIGHT_POWER (0.6) #define MINECRAFT_AMBIENT_LIGHT (0.4) vec4 minecraft_mix_light(vec3 lightDir0, vec3 lightDir1, vec3 normal, vec4 color) { lightDir0 = normalize(lightDir0); lightDir1 = normalize(lightDir1); float light0 = max(0.00000, dot(lightDir0, normal)); float light1 = max(0.00000, dot(lightDir1, normal)); float lightAccum = min(1.00000, (light0 + light1) * MINECRAFT_LIGHT_POWER + MINECRAFT_AMBIENT_LIGHT); return vec4(color.rgb * lightAccum, color.a); } vec4 minecraft_sample_lightmap(sampler2D lightMap, vec2 uv) { return texture(lightMap, clamp(uv / 256.000, vec2(0.500000 / 16.0000), vec2(15.5000 / 16.0000))); } #line 0 2 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, float shape) { if (shape == 0.0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 4 0 in vec3 Position; in vec4 Color; in vec2 UV0; in vec2 UV1; in vec2 UV2; in vec3 Normal; uniform sampler2D Sampler1; uniform sampler2D Sampler2; uniform mat4 ModelViewMat; uniform mat4 ProjMat; uniform mat3 IViewRotMat; uniform float FogShape; uniform vec3 Light0_Direction; uniform vec3 Light1_Direction; out float vertexDistance; out vec4 vertexColor; out vec4 lightMapColor; out vec4 overlayColor; out vec2 texCoord0; out vec4 normal; void main() { gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.00000); vertexDistance = fog_distance(ModelViewMat, IViewRotMat * Position, FogShape); vertexColor = minecraft_mix_light(Light0_Direction, Light1_Direction, Normal, Color); lightMapColor = vgpu_texelFetch(Sampler2, UV2 / 16.0, 0.0); overlayColor = vgpu_texelFetch(Sampler1, UV1, 0.0); texCoord0 = UV0; normal = ProjMat * ModelViewMat * vec4(Normal, 0.00000); } version string: 150New VGPU Shader source: #version 320 es #define texture2D texture #define attribute in #define varying out precision highp float; precision highp int; #line 0 1 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, int shape) { if (shape == 0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 3 0 uniform sampler2D Sampler0; uniform vec4 ColorModulator; uniform float FogStart; uniform float FogEnd; uniform vec4 FogColor; in float vertexDistance; in vec4 vertexColor; in vec4 lightMapColor; in vec4 overlayColor; in vec2 texCoord0; in vec4 normal; out vec4 fragColor; void main() { vec4 color = texture(Sampler0, texCoord0); if (color.a < 0.100000) { discard; } color *= vertexColor * ColorModulator; color.rgb = mix(overlayColor.rgb, color.rgb, overlayColor.a); color *= lightMapColor; fragColor = linear_fog(color, vertexDistance, FogStart, FogEnd, FogColor); } New VGPU Shader conversion: #version 320 es #ifdef GL_OES_texture_storage_multisample_2d_array #extension GL_OES_texture_storage_multisample_2d_array : enable #endif #ifdef GL_EXT_texture_buffer #extension GL_EXT_texture_buffer : enable #endif #ifdef GL_EXT_texture_cube_map_array #extension GL_EXT_texture_cube_map_array : enable #endif #ifdef GL_EXT_shader_non_constant_global_initializers #extension GL_EXT_shader_non_constant_global_initializers : enable #endif precision highp float; precision lowp image2D; precision lowp image2DArray; precision lowp image3D; precision lowp imageCube; precision lowp sampler2D; precision lowp sampler3D; precision lowp sampler2DShadow; precision lowp samplerCubeShadow; precision lowp sampler2DArray; precision lowp sampler2DArrayShadow; precision lowp samplerCube; #ifdef GL_EXT_texture_buffer precision lowp samplerBuffer; precision lowp imageBuffer; #endif #ifdef GL_EXT_texture_cube_map_array precision lowp imageCubeArray; precision lowp samplerCubeArray; precision lowp samplerCubeArrayShadow; #endif #ifdef GL_OES_texture_storage_multisample_2d_array precision lowp sampler2DMS; precision lowp sampler2DMSArray; #endif #line 0 1 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, float shape) { if (shape == 0.0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 3 0 uniform sampler2D Sampler0; uniform vec4 ColorModulator; uniform float FogStart; uniform float FogEnd; uniform vec4 FogColor; in float vertexDistance; in vec4 vertexColor; in vec4 lightMapColor; in vec4 overlayColor; in vec2 texCoord0; in vec4 normal; out vec4 fragColor; void main() { vec4 color = texture(Sampler0, texCoord0); if (color.a < 0.100000) { discard; } color *= vertexColor * ColorModulator; color.rgb = mix(overlayColor.rgb, color.rgb, overlayColor.a); color *= lightMapColor; fragColor = linear_fog(color, vertexDistance, FogStart, FogEnd, FogColor); } version string: 150New VGPU Shader source: #version 320 es #define texture2D texture #define attribute in #define varying out precision highp float; precision highp int; #line 0 1 #define MINECRAFT_LIGHT_POWER (0.6) #define MINECRAFT_AMBIENT_LIGHT (0.4) vec4 minecraft_mix_light(vec3 lightDir0, vec3 lightDir1, vec3 normal, vec4 color) { lightDir0 = normalize(lightDir0); lightDir1 = normalize(lightDir1); float light0 = max(0.00000, dot(lightDir0, normal)); float light1 = max(0.00000, dot(lightDir1, normal)); float lightAccum = min(1.00000, (light0 + light1) * MINECRAFT_LIGHT_POWER + MINECRAFT_AMBIENT_LIGHT); return vec4(color.rgb * lightAccum, color.a); } vec4 minecraft_sample_lightmap(sampler2D lightMap, ivec2 uv) { return texture(lightMap, clamp(uv / 256.000, vec2(0.500000 / 16.0000), vec2(15.5000 / 16.0000))); } #line 0 2 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, int shape) { if (shape == 0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 4 0 in vec3 Position; in vec4 Color; in vec2 UV0; in vec2 UV1; in ivec2 UV2; in vec3 Normal; uniform sampler2D Sampler2; uniform mat4 ModelViewMat; uniform mat4 ProjMat; uniform mat3 IViewRotMat; uniform int FogShape; uniform vec3 Light0_Direction; uniform vec3 Light1_Direction; out float vertexDistance; out vec4 vertexColor; out vec2 texCoord0; out vec2 texCoord1; out vec2 texCoord2; out vec4 normal; void main() { gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.00000); vertexDistance = fog_distance(ModelViewMat, IViewRotMat * Position, FogShape); vertexColor = minecraft_mix_light(Light0_Direction, Light1_Direction, Normal, Color) * texelFetch(Sampler2, UV2 / 16, 0); texCoord0 = UV0; texCoord1 = UV1; texCoord2 = UV2; normal = ProjMat * ModelViewMat * vec4(Normal, 0.00000); } New VGPU Shader conversion: #version 320 es #ifdef GL_OES_texture_storage_multisample_2d_array #extension GL_OES_texture_storage_multisample_2d_array : enable #endif #ifdef GL_EXT_texture_buffer #extension GL_EXT_texture_buffer : enable #endif #ifdef GL_EXT_texture_cube_map_array #extension GL_EXT_texture_cube_map_array : enable #endif #ifdef GL_EXT_shader_non_constant_global_initializers #extension GL_EXT_shader_non_constant_global_initializers : enable #endif precision highp float; precision lowp image2D; precision lowp image2DArray; precision lowp image3D; precision lowp imageCube; precision lowp sampler2D; precision lowp sampler3D; precision lowp sampler2DShadow; precision lowp samplerCubeShadow; precision lowp sampler2DArray; precision lowp sampler2DArrayShadow; precision lowp samplerCube; #ifdef GL_EXT_texture_buffer precision lowp samplerBuffer; precision lowp imageBuffer; #endif #ifdef GL_EXT_texture_cube_map_array precision lowp imageCubeArray; precision lowp samplerCubeArray; precision lowp samplerCubeArrayShadow; #endif #ifdef GL_OES_texture_storage_multisample_2d_array precision lowp sampler2DMS; precision lowp sampler2DMSArray; #endif vec4 vgpu_texelFetch(sampler2D sampler, vec2 P, float lod){return texelFetch(sampler, ivec2(P), int(lod));} vec4 vgpu_texelFetch(sampler3D sampler, vec3 P, float lod){return texelFetch(sampler, ivec3(P), int(lod));} vec4 vgpu_texelFetch(sampler2DArray sampler, vec3 P, float lod){return texelFetch(sampler, ivec3(P), int(lod));} #ifdef GL_EXT_texture_buffer vec4 vgpu_texelFetch(samplerBuffer sampler, float P){return texelFetch(sampler, int(P));} #endif #ifdef GL_OES_texture_storage_multisample_2d_array vec4 vgpu_texelFetch(sampler2DMS sampler, vec2 P, float _sample){return texelFetch(sampler, ivec2(P), int(_sample));} vec4 vgpu_texelFetch(sampler2DMSArray sampler, vec3 P, float _sample){return texelFetch(sampler, ivec3(P), int(_sample));} #endif #line 0 1 #define MINECRAFT_LIGHT_POWER (0.6) #define MINECRAFT_AMBIENT_LIGHT (0.4) vec4 minecraft_mix_light(vec3 lightDir0, vec3 lightDir1, vec3 normal, vec4 color) { lightDir0 = normalize(lightDir0); lightDir1 = normalize(lightDir1); float light0 = max(0.00000, dot(lightDir0, normal)); float light1 = max(0.00000, dot(lightDir1, normal)); float lightAccum = min(1.00000, (light0 + light1) * MINECRAFT_LIGHT_POWER + MINECRAFT_AMBIENT_LIGHT); return vec4(color.rgb * lightAccum, color.a); } vec4 minecraft_sample_lightmap(sampler2D lightMap, vec2 uv) { return texture(lightMap, clamp(uv / 256.000, vec2(0.500000 / 16.0000), vec2(15.5000 / 16.0000))); } #line 0 2 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, float shape) { if (shape == 0.0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 4 0 in vec3 Position; in vec4 Color; in vec2 UV0; in vec2 UV1; in vec2 UV2; in vec3 Normal; uniform sampler2D Sampler2; uniform mat4 ModelViewMat; uniform mat4 ProjMat; uniform mat3 IViewRotMat; uniform float FogShape; uniform vec3 Light0_Direction; uniform vec3 Light1_Direction; out float vertexDistance; out vec4 vertexColor; out vec2 texCoord0; out vec2 texCoord1; out vec2 texCoord2; out vec4 normal; void main() { gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.00000); vertexDistance = fog_distance(ModelViewMat, IViewRotMat * Position, FogShape); vertexColor = minecraft_mix_light(Light0_Direction, Light1_Direction, Normal, Color) * vgpu_texelFetch(Sampler2, UV2 / 16.0, 0.0); texCoord0 = UV0; texCoord1 = UV1; texCoord2 = UV2; normal = ProjMat * ModelViewMat * vec4(Normal, 0.00000); } version string: 150New VGPU Shader source: #version 320 es #define texture2D texture #define attribute in #define varying out precision highp float; precision highp int; #line 0 1 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, int shape) { if (shape == 0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 3 0 uniform sampler2D Sampler0; uniform vec4 ColorModulator; uniform float FogStart; uniform float FogEnd; uniform vec4 FogColor; in float vertexDistance; in vec4 vertexColor; in vec2 texCoord0; in vec2 texCoord1; in vec4 normal; out vec4 fragColor; void main() { vec4 color = texture(Sampler0, texCoord0) * vertexColor * ColorModulator; if (color.a < 0.100000) { discard; } fragColor = linear_fog(color, vertexDistance, FogStart, FogEnd, FogColor); } New VGPU Shader conversion: #version 320 es #ifdef GL_OES_texture_storage_multisample_2d_array #extension GL_OES_texture_storage_multisample_2d_array : enable #endif #ifdef GL_EXT_texture_buffer #extension GL_EXT_texture_buffer : enable #endif #ifdef GL_EXT_texture_cube_map_array #extension GL_EXT_texture_cube_map_array : enable #endif #ifdef GL_EXT_shader_non_constant_global_initializers #extension GL_EXT_shader_non_constant_global_initializers : enable #endif precision highp float; precision lowp image2D; precision lowp image2DArray; precision lowp image3D; precision lowp imageCube; precision lowp sampler2D; precision lowp sampler3D; precision lowp sampler2DShadow; precision lowp samplerCubeShadow; precision lowp sampler2DArray; precision lowp sampler2DArrayShadow; precision lowp samplerCube; #ifdef GL_EXT_texture_buffer precision lowp samplerBuffer; precision lowp imageBuffer; #endif #ifdef GL_EXT_texture_cube_map_array precision lowp imageCubeArray; precision lowp samplerCubeArray; precision lowp samplerCubeArrayShadow; #endif #ifdef GL_OES_texture_storage_multisample_2d_array precision lowp sampler2DMS; precision lowp sampler2DMSArray; #endif #line 0 1 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, float shape) { if (shape == 0.0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 3 0 uniform sampler2D Sampler0; uniform vec4 ColorModulator; uniform float FogStart; uniform float FogEnd; uniform vec4 FogColor; in float vertexDistance; in vec4 vertexColor; in vec2 texCoord0; in vec2 texCoord1; in vec4 normal; out vec4 fragColor; void main() { vec4 color = texture(Sampler0, texCoord0) * vertexColor * ColorModulator; if (color.a < 0.100000) { discard; } fragColor = linear_fog(color, vertexDistance, FogStart, FogEnd, FogColor); } version string: 150New VGPU Shader source: #version 320 es #define texture2D texture #define attribute in #define varying out precision highp float; precision highp int; #line 0 1 #define MINECRAFT_LIGHT_POWER (0.6) #define MINECRAFT_AMBIENT_LIGHT (0.4) vec4 minecraft_mix_light(vec3 lightDir0, vec3 lightDir1, vec3 normal, vec4 color) { lightDir0 = normalize(lightDir0); lightDir1 = normalize(lightDir1); float light0 = max(0.00000, dot(lightDir0, normal)); float light1 = max(0.00000, dot(lightDir1, normal)); float lightAccum = min(1.00000, (light0 + light1) * MINECRAFT_LIGHT_POWER + MINECRAFT_AMBIENT_LIGHT); return vec4(color.rgb * lightAccum, color.a); } vec4 minecraft_sample_lightmap(sampler2D lightMap, ivec2 uv) { return texture(lightMap, clamp(uv / 256.000, vec2(0.500000 / 16.0000), vec2(15.5000 / 16.0000))); } #line 0 2 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, int shape) { if (shape == 0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 4 0 in vec3 Position; in vec4 Color; in vec2 UV0; in vec2 UV1; in ivec2 UV2; in vec3 Normal; uniform sampler2D Sampler2; uniform mat4 ModelViewMat; uniform mat4 ProjMat; uniform mat3 IViewRotMat; uniform int FogShape; uniform vec3 Light0_Direction; uniform vec3 Light1_Direction; out float vertexDistance; out vec4 vertexColor; out vec2 texCoord0; out vec2 texCoord1; out vec2 texCoord2; out vec4 normal; void main() { gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.00000); vertexDistance = fog_distance(ModelViewMat, IViewRotMat * Position, FogShape); vertexColor = minecraft_mix_light(Light0_Direction, Light1_Direction, Normal, Color) * texelFetch(Sampler2, UV2 / 16, 0); texCoord0 = UV0; texCoord1 = UV1; texCoord2 = UV2; normal = ProjMat * ModelViewMat * vec4(Normal, 0.00000); } New VGPU Shader conversion: #version 320 es #ifdef GL_OES_texture_storage_multisample_2d_array #extension GL_OES_texture_storage_multisample_2d_array : enable #endif #ifdef GL_EXT_texture_buffer #extension GL_EXT_texture_buffer : enable #endif #ifdef GL_EXT_texture_cube_map_array #extension GL_EXT_texture_cube_map_array : enable #endif #ifdef GL_EXT_shader_non_constant_global_initializers #extension GL_EXT_shader_non_constant_global_initializers : enable #endif precision highp float; precision lowp image2D; precision lowp image2DArray; precision lowp image3D; precision lowp imageCube; precision lowp sampler2D; precision lowp sampler3D; precision lowp sampler2DShadow; precision lowp samplerCubeShadow; precision lowp sampler2DArray; precision lowp sampler2DArrayShadow; precision lowp samplerCube; #ifdef GL_EXT_texture_buffer precision lowp samplerBuffer; precision lowp imageBuffer; #endif #ifdef GL_EXT_texture_cube_map_array precision lowp imageCubeArray; precision lowp samplerCubeArray; precision lowp samplerCubeArrayShadow; #endif #ifdef GL_OES_texture_storage_multisample_2d_array precision lowp sampler2DMS; precision lowp sampler2DMSArray; #endif vec4 vgpu_texelFetch(sampler2D sampler, vec2 P, float lod){return texelFetch(sampler, ivec2(P), int(lod));} vec4 vgpu_texelFetch(sampler3D sampler, vec3 P, float lod){return texelFetch(sampler, ivec3(P), int(lod));} vec4 vgpu_texelFetch(sampler2DArray sampler, vec3 P, float lod){return texelFetch(sampler, ivec3(P), int(lod));} #ifdef GL_EXT_texture_buffer vec4 vgpu_texelFetch(samplerBuffer sampler, float P){return texelFetch(sampler, int(P));} #endif #ifdef GL_OES_texture_storage_multisample_2d_array vec4 vgpu_texelFetch(sampler2DMS sampler, vec2 P, float _sample){return texelFetch(sampler, ivec2(P), int(_sample));} vec4 vgpu_texelFetch(sampler2DMSArray sampler, vec3 P, float _sample){return texelFetch(sampler, ivec3(P), int(_sample));} #endif #line 0 1 #define MINECRAFT_LIGHT_POWER (0.6) #define MINECRAFT_AMBIENT_LIGHT (0.4) vec4 minecraft_mix_light(vec3 lightDir0, vec3 lightDir1, vec3 normal, vec4 color) { lightDir0 = normalize(lightDir0); lightDir1 = normalize(lightDir1); float light0 = max(0.00000, dot(lightDir0, normal)); float light1 = max(0.00000, dot(lightDir1, normal)); float lightAccum = min(1.00000, (light0 + light1) * MINECRAFT_LIGHT_POWER + MINECRAFT_AMBIENT_LIGHT); return vec4(color.rgb * lightAccum, color.a); } vec4 minecraft_sample_lightmap(sampler2D lightMap, vec2 uv) { return texture(lightMap, clamp(uv / 256.000, vec2(0.500000 / 16.0000), vec2(15.5000 / 16.0000))); } #line 0 2 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, float shape) { if (shape == 0.0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 4 0 in vec3 Position; in vec4 Color; in vec2 UV0; in vec2 UV1; in vec2 UV2; in vec3 Normal; uniform sampler2D Sampler2; uniform mat4 ModelViewMat; uniform mat4 ProjMat; uniform mat3 IViewRotMat; uniform float FogShape; uniform vec3 Light0_Direction; uniform vec3 Light1_Direction; out float vertexDistance; out vec4 vertexColor; out vec2 texCoord0; out vec2 texCoord1; out vec2 texCoord2; out vec4 normal; void main() { gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.00000); vertexDistance = fog_distance(ModelViewMat, IViewRotMat * Position, FogShape); vertexColor = minecraft_mix_light(Light0_Direction, Light1_Direction, Normal, Color) * vgpu_texelFetch(Sampler2, UV2 / 16.0, 0.0); texCoord0 = UV0; texCoord1 = UV1; texCoord2 = UV2; normal = ProjMat * ModelViewMat * vec4(Normal, 0.00000); } version string: 150New VGPU Shader source: #version 320 es #define texture2D texture #define attribute in #define varying out precision highp float; precision highp int; #line 0 1 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, int shape) { if (shape == 0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 3 0 uniform sampler2D Sampler0; uniform vec4 ColorModulator; uniform float FogStart; uniform float FogEnd; uniform vec4 FogColor; in float vertexDistance; in vec4 vertexColor; in vec2 texCoord0; in vec2 texCoord1; in vec4 normal; out vec4 fragColor; void main() { vec4 color = texture(Sampler0, texCoord0) * vertexColor * ColorModulator; if (color.a < 0.100000) { discard; } fragColor = linear_fog(color, vertexDistance, FogStart, FogEnd, FogColor); } New VGPU Shader conversion: #version 320 es #ifdef GL_OES_texture_storage_multisample_2d_array #extension GL_OES_texture_storage_multisample_2d_array : enable #endif #ifdef GL_EXT_texture_buffer #extension GL_EXT_texture_buffer : enable #endif #ifdef GL_EXT_texture_cube_map_array #extension GL_EXT_texture_cube_map_array : enable #endif #ifdef GL_EXT_shader_non_constant_global_initializers #extension GL_EXT_shader_non_constant_global_initializers : enable #endif precision highp float; precision lowp image2D; precision lowp image2DArray; precision lowp image3D; precision lowp imageCube; precision lowp sampler2D; precision lowp sampler3D; precision lowp sampler2DShadow; precision lowp samplerCubeShadow; precision lowp sampler2DArray; precision lowp sampler2DArrayShadow; precision lowp samplerCube; #ifdef GL_EXT_texture_buffer precision lowp samplerBuffer; precision lowp imageBuffer; #endif #ifdef GL_EXT_texture_cube_map_array precision lowp imageCubeArray; precision lowp samplerCubeArray; precision lowp samplerCubeArrayShadow; #endif #ifdef GL_OES_texture_storage_multisample_2d_array precision lowp sampler2DMS; precision lowp sampler2DMSArray; #endif #line 0 1 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, float shape) { if (shape == 0.0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 3 0 uniform sampler2D Sampler0; uniform vec4 ColorModulator; uniform float FogStart; uniform float FogEnd; uniform vec4 FogColor; in float vertexDistance; in vec4 vertexColor; in vec2 texCoord0; in vec2 texCoord1; in vec4 normal; out vec4 fragColor; void main() { vec4 color = texture(Sampler0, texCoord0) * vertexColor * ColorModulator; if (color.a < 0.100000) { discard; } fragColor = linear_fog(color, vertexDistance, FogStart, FogEnd, FogColor); } version string: 150New VGPU Shader source: #version 320 es #define texture2D texture #define attribute in #define varying out precision highp float; precision highp int; #line 0 1 #define MINECRAFT_LIGHT_POWER (0.6) #define MINECRAFT_AMBIENT_LIGHT (0.4) vec4 minecraft_mix_light(vec3 lightDir0, vec3 lightDir1, vec3 normal, vec4 color) { lightDir0 = normalize(lightDir0); lightDir1 = normalize(lightDir1); float light0 = max(0.00000, dot(lightDir0, normal)); float light1 = max(0.00000, dot(lightDir1, normal)); float lightAccum = min(1.00000, (light0 + light1) * MINECRAFT_LIGHT_POWER + MINECRAFT_AMBIENT_LIGHT); return vec4(color.rgb * lightAccum, color.a); } vec4 minecraft_sample_lightmap(sampler2D lightMap, ivec2 uv) { return texture(lightMap, clamp(uv / 256.000, vec2(0.500000 / 16.0000), vec2(15.5000 / 16.0000))); } #line 0 2 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, int shape) { if (shape == 0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 4 0 in vec3 Position; in vec4 Color; in vec2 UV0; in ivec2 UV1; in ivec2 UV2; in vec3 Normal; uniform sampler2D Sampler1; uniform sampler2D Sampler2; uniform mat4 ModelViewMat; uniform mat4 ProjMat; uniform mat3 IViewRotMat; uniform int FogShape; uniform vec3 Light0_Direction; uniform vec3 Light1_Direction; out float vertexDistance; out vec4 vertexColor; out vec4 lightMapColor; out vec4 overlayColor; out vec2 texCoord0; out vec4 normal; void main() { gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.00000); vertexDistance = fog_distance(ModelViewMat, IViewRotMat * Position, FogShape); vertexColor = minecraft_mix_light(Light0_Direction, Light1_Direction, Normal, Color); lightMapColor = texelFetch(Sampler2, UV2 / 16, 0); overlayColor = texelFetch(Sampler1, UV1, 0); texCoord0 = UV0; normal = ProjMat * ModelViewMat * vec4(Normal, 0.00000); } New VGPU Shader conversion: #version 320 es #ifdef GL_OES_texture_storage_multisample_2d_array #extension GL_OES_texture_storage_multisample_2d_array : enable #endif #ifdef GL_EXT_texture_buffer #extension GL_EXT_texture_buffer : enable #endif #ifdef GL_EXT_texture_cube_map_array #extension GL_EXT_texture_cube_map_array : enable #endif #ifdef GL_EXT_shader_non_constant_global_initializers #extension GL_EXT_shader_non_constant_global_initializers : enable #endif precision highp float; precision lowp image2D; precision lowp image2DArray; precision lowp image3D; precision lowp imageCube; precision lowp sampler2D; precision lowp sampler3D; precision lowp sampler2DShadow; precision lowp samplerCubeShadow; precision lowp sampler2DArray; precision lowp sampler2DArrayShadow; precision lowp samplerCube; #ifdef GL_EXT_texture_buffer precision lowp samplerBuffer; precision lowp imageBuffer; #endif #ifdef GL_EXT_texture_cube_map_array precision lowp imageCubeArray; precision lowp samplerCubeArray; precision lowp samplerCubeArrayShadow; #endif #ifdef GL_OES_texture_storage_multisample_2d_array precision lowp sampler2DMS; precision lowp sampler2DMSArray; #endif vec4 vgpu_texelFetch(sampler2D sampler, vec2 P, float lod){return texelFetch(sampler, ivec2(P), int(lod));} vec4 vgpu_texelFetch(sampler3D sampler, vec3 P, float lod){return texelFetch(sampler, ivec3(P), int(lod));} vec4 vgpu_texelFetch(sampler2DArray sampler, vec3 P, float lod){return texelFetch(sampler, ivec3(P), int(lod));} #ifdef GL_EXT_texture_buffer vec4 vgpu_texelFetch(samplerBuffer sampler, float P){return texelFetch(sampler, int(P));} #endif #ifdef GL_OES_texture_storage_multisample_2d_array vec4 vgpu_texelFetch(sampler2DMS sampler, vec2 P, float _sample){return texelFetch(sampler, ivec2(P), int(_sample));} vec4 vgpu_texelFetch(sampler2DMSArray sampler, vec3 P, float _sample){return texelFetch(sampler, ivec3(P), int(_sample));} #endif #line 0 1 #define MINECRAFT_LIGHT_POWER (0.6) #define MINECRAFT_AMBIENT_LIGHT (0.4) vec4 minecraft_mix_light(vec3 lightDir0, vec3 lightDir1, vec3 normal, vec4 color) { lightDir0 = normalize(lightDir0); lightDir1 = normalize(lightDir1); float light0 = max(0.00000, dot(lightDir0, normal)); float light1 = max(0.00000, dot(lightDir1, normal)); float lightAccum = min(1.00000, (light0 + light1) * MINECRAFT_LIGHT_POWER + MINECRAFT_AMBIENT_LIGHT); return vec4(color.rgb * lightAccum, color.a); } vec4 minecraft_sample_lightmap(sampler2D lightMap, vec2 uv) { return texture(lightMap, clamp(uv / 256.000, vec2(0.500000 / 16.0000), vec2(15.5000 / 16.0000))); } #line 0 2 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, float shape) { if (shape == 0.0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 4 0 in vec3 Position; in vec4 Color; in vec2 UV0; in vec2 UV1; in vec2 UV2; in vec3 Normal; uniform sampler2D Sampler1; uniform sampler2D Sampler2; uniform mat4 ModelViewMat; uniform mat4 ProjMat; uniform mat3 IViewRotMat; uniform float FogShape; uniform vec3 Light0_Direction; uniform vec3 Light1_Direction; out float vertexDistance; out vec4 vertexColor; out vec4 lightMapColor; out vec4 overlayColor; out vec2 texCoord0; out vec4 normal; void main() { gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.00000); vertexDistance = fog_distance(ModelViewMat, IViewRotMat * Position, FogShape); vertexColor = minecraft_mix_light(Light0_Direction, Light1_Direction, Normal, Color); lightMapColor = vgpu_texelFetch(Sampler2, UV2 / 16.0, 0.0); overlayColor = vgpu_texelFetch(Sampler1, UV1, 0.0); texCoord0 = UV0; normal = ProjMat * ModelViewMat * vec4(Normal, 0.00000); } version string: 150New VGPU Shader source: #version 320 es #define texture2D texture #define attribute in #define varying out precision highp float; precision highp int; #line 0 1 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, int shape) { if (shape == 0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 3 0 uniform sampler2D Sampler0; uniform vec4 ColorModulator; uniform float FogStart; uniform float FogEnd; uniform vec4 FogColor; in float vertexDistance; in vec4 vertexColor; in vec4 lightMapColor; in vec4 overlayColor; in vec2 texCoord0; in vec4 normal; out vec4 fragColor; void main() { vec4 color = texture(Sampler0, texCoord0); if (color.a < 0.100000) { discard; } color *= vertexColor * ColorModulator; color.rgb = mix(overlayColor.rgb, color.rgb, overlayColor.a); color *= lightMapColor; fragColor = linear_fog(color, vertexDistance, FogStart, FogEnd, FogColor); } New VGPU Shader conversion: #version 320 es #ifdef GL_OES_texture_storage_multisample_2d_array #extension GL_OES_texture_storage_multisample_2d_array : enable #endif #ifdef GL_EXT_texture_buffer #extension GL_EXT_texture_buffer : enable #endif #ifdef GL_EXT_texture_cube_map_array #extension GL_EXT_texture_cube_map_array : enable #endif #ifdef GL_EXT_shader_non_constant_global_initializers #extension GL_EXT_shader_non_constant_global_initializers : enable #endif precision highp float; precision lowp image2D; precision lowp image2DArray; precision lowp image3D; precision lowp imageCube; precision lowp sampler2D; precision lowp sampler3D; precision lowp sampler2DShadow; precision lowp samplerCubeShadow; precision lowp sampler2DArray; precision lowp sampler2DArrayShadow; precision lowp samplerCube; #ifdef GL_EXT_texture_buffer precision lowp samplerBuffer; precision lowp imageBuffer; #endif #ifdef GL_EXT_texture_cube_map_array precision lowp imageCubeArray; precision lowp samplerCubeArray; precision lowp samplerCubeArrayShadow; #endif #ifdef GL_OES_texture_storage_multisample_2d_array precision lowp sampler2DMS; precision lowp sampler2DMSArray; #endif #line 0 1 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, float shape) { if (shape == 0.0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 3 0 uniform sampler2D Sampler0; uniform vec4 ColorModulator; uniform float FogStart; uniform float FogEnd; uniform vec4 FogColor; in float vertexDistance; in vec4 vertexColor; in vec4 lightMapColor; in vec4 overlayColor; in vec2 texCoord0; in vec4 normal; out vec4 fragColor; void main() { vec4 color = texture(Sampler0, texCoord0); if (color.a < 0.100000) { discard; } color *= vertexColor * ColorModulator; color.rgb = mix(overlayColor.rgb, color.rgb, overlayColor.a); color *= lightMapColor; fragColor = linear_fog(color, vertexDistance, FogStart, FogEnd, FogColor); } version string: 150New VGPU Shader source: #version 320 es #define texture2D texture #define attribute in #define varying out precision highp float; precision highp int; #line 0 1 #define MINECRAFT_LIGHT_POWER (0.6) #define MINECRAFT_AMBIENT_LIGHT (0.4) vec4 minecraft_mix_light(vec3 lightDir0, vec3 lightDir1, vec3 normal, vec4 color) { lightDir0 = normalize(lightDir0); lightDir1 = normalize(lightDir1); float light0 = max(0.00000, dot(lightDir0, normal)); float light1 = max(0.00000, dot(lightDir1, normal)); float lightAccum = min(1.00000, (light0 + light1) * MINECRAFT_LIGHT_POWER + MINECRAFT_AMBIENT_LIGHT); return vec4(color.rgb * lightAccum, color.a); } vec4 minecraft_sample_lightmap(sampler2D lightMap, ivec2 uv) { return texture(lightMap, clamp(uv / 256.000, vec2(0.500000 / 16.0000), vec2(15.5000 / 16.0000))); } #line 3 0 in vec3 Position; in vec4 Color; in vec2 UV0; in ivec2 UV1; in ivec2 UV2; in vec3 Normal; uniform sampler2D Sampler1; uniform sampler2D Sampler2; uniform mat4 ModelViewMat; uniform mat4 ProjMat; uniform vec3 Light0_Direction; uniform vec3 Light1_Direction; out float vertexDistance; out vec4 vertexColor; out vec4 overlayColor; out vec2 texCoord0; out vec4 normal; void main() { gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.00000); vertexDistance = length((ModelViewMat * vec4(Position, 1.00000)).xyz); vertexColor = minecraft_mix_light(Light0_Direction, Light1_Direction, Normal, Color); overlayColor = texelFetch(Sampler1, UV1, 0); texCoord0 = UV0; normal = ProjMat * ModelViewMat * vec4(Normal, 0.00000); } New VGPU Shader conversion: #version 320 es #ifdef GL_OES_texture_storage_multisample_2d_array #extension GL_OES_texture_storage_multisample_2d_array : enable #endif #ifdef GL_EXT_texture_buffer #extension GL_EXT_texture_buffer : enable #endif #ifdef GL_EXT_texture_cube_map_array #extension GL_EXT_texture_cube_map_array : enable #endif #ifdef GL_EXT_shader_non_constant_global_initializers #extension GL_EXT_shader_non_constant_global_initializers : enable #endif precision highp float; precision lowp image2D; precision lowp image2DArray; precision lowp image3D; precision lowp imageCube; precision lowp sampler2D; precision lowp sampler3D; precision lowp sampler2DShadow; precision lowp samplerCubeShadow; precision lowp sampler2DArray; precision lowp sampler2DArrayShadow; precision lowp samplerCube; #ifdef GL_EXT_texture_buffer precision lowp samplerBuffer; precision lowp imageBuffer; #endif #ifdef GL_EXT_texture_cube_map_array precision lowp imageCubeArray; precision lowp samplerCubeArray; precision lowp samplerCubeArrayShadow; #endif #ifdef GL_OES_texture_storage_multisample_2d_array precision lowp sampler2DMS; precision lowp sampler2DMSArray; #endif vec4 vgpu_texelFetch(sampler2D sampler, vec2 P, float lod){return texelFetch(sampler, ivec2(P), int(lod));} vec4 vgpu_texelFetch(sampler3D sampler, vec3 P, float lod){return texelFetch(sampler, ivec3(P), int(lod));} vec4 vgpu_texelFetch(sampler2DArray sampler, vec3 P, float lod){return texelFetch(sampler, ivec3(P), int(lod));} #ifdef GL_EXT_texture_buffer vec4 vgpu_texelFetch(samplerBuffer sampler, float P){return texelFetch(sampler, int(P));} #endif #ifdef GL_OES_texture_storage_multisample_2d_array vec4 vgpu_texelFetch(sampler2DMS sampler, vec2 P, float _sample){return texelFetch(sampler, ivec2(P), int(_sample));} vec4 vgpu_texelFetch(sampler2DMSArray sampler, vec3 P, float _sample){return texelFetch(sampler, ivec3(P), int(_sample));} #endif #line 0 1 #define MINECRAFT_LIGHT_POWER (0.6) #define MINECRAFT_AMBIENT_LIGHT (0.4) vec4 minecraft_mix_light(vec3 lightDir0, vec3 lightDir1, vec3 normal, vec4 color) { lightDir0 = normalize(lightDir0); lightDir1 = normalize(lightDir1); float light0 = max(0.00000, dot(lightDir0, normal)); float light1 = max(0.00000, dot(lightDir1, normal)); float lightAccum = min(1.00000, (light0 + light1) * MINECRAFT_LIGHT_POWER + MINECRAFT_AMBIENT_LIGHT); return vec4(color.rgb * lightAccum, color.a); } vec4 minecraft_sample_lightmap(sampler2D lightMap, vec2 uv) { return texture(lightMap, clamp(uv / 256.000, vec2(0.500000 / 16.0000), vec2(15.5000 / 16.0000))); } #line 3 0 in vec3 Position; in vec4 Color; in vec2 UV0; in vec2 UV1; in vec2 UV2; in vec3 Normal; uniform sampler2D Sampler1; uniform sampler2D Sampler2; uniform mat4 ModelViewMat; uniform mat4 ProjMat; uniform vec3 Light0_Direction; uniform vec3 Light1_Direction; out float vertexDistance; out vec4 vertexColor; out vec4 overlayColor; out vec2 texCoord0; out vec4 normal; void main() { gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.00000); vertexDistance = length((ModelViewMat * vec4(Position, 1.00000)).xyz); vertexColor = minecraft_mix_light(Light0_Direction, Light1_Direction, Normal, Color); overlayColor = vgpu_texelFetch(Sampler1, UV1, 0.0); texCoord0 = UV0; normal = ProjMat * ModelViewMat * vec4(Normal, 0.00000); } version string: 150New VGPU Shader source: #version 320 es #define texture2D texture #define attribute in #define varying out precision highp float; precision highp int; #line 0 1 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, int shape) { if (shape == 0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 3 0 uniform sampler2D Sampler0; uniform vec4 ColorModulator; uniform float FogStart; uniform float FogEnd; in float vertexDistance; in vec4 vertexColor; in vec4 overlayColor; in vec2 texCoord0; in vec4 normal; out vec4 fragColor; void main() { vec4 color = texture(Sampler0, texCoord0); if (color.a < 0.100000) { discard; } color *= vertexColor * ColorModulator; color.rgb = mix(overlayColor.rgb, color.rgb, overlayColor.a); fragColor = color * linear_fog_fade(vertexDistance, FogStart, FogEnd); } New VGPU Shader conversion: #version 320 es #ifdef GL_OES_texture_storage_multisample_2d_array #extension GL_OES_texture_storage_multisample_2d_array : enable #endif #ifdef GL_EXT_texture_buffer #extension GL_EXT_texture_buffer : enable #endif #ifdef GL_EXT_texture_cube_map_array #extension GL_EXT_texture_cube_map_array : enable #endif #ifdef GL_EXT_shader_non_constant_global_initializers #extension GL_EXT_shader_non_constant_global_initializers : enable #endif precision highp float; precision lowp image2D; precision lowp image2DArray; precision lowp image3D; precision lowp imageCube; precision lowp sampler2D; precision lowp sampler3D; precision lowp sampler2DShadow; precision lowp samplerCubeShadow; precision lowp sampler2DArray; precision lowp sampler2DArrayShadow; precision lowp samplerCube; #ifdef GL_EXT_texture_buffer precision lowp samplerBuffer; precision lowp imageBuffer; #endif #ifdef GL_EXT_texture_cube_map_array precision lowp imageCubeArray; precision lowp samplerCubeArray; precision lowp samplerCubeArrayShadow; #endif #ifdef GL_OES_texture_storage_multisample_2d_array precision lowp sampler2DMS; precision lowp sampler2DMSArray; #endif #line 0 1 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, float shape) { if (shape == 0.0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 3 0 uniform sampler2D Sampler0; uniform vec4 ColorModulator; uniform float FogStart; uniform float FogEnd; in float vertexDistance; in vec4 vertexColor; in vec4 overlayColor; in vec2 texCoord0; in vec4 normal; out vec4 fragColor; void main() { vec4 color = texture(Sampler0, texCoord0); if (color.a < 0.100000) { discard; } color *= vertexColor * ColorModulator; color.rgb = mix(overlayColor.rgb, color.rgb, overlayColor.a); fragColor = color * linear_fog_fade(vertexDistance, FogStart, FogEnd); } [17:40:13] [Render thread/WARN]: Shader rendertype_entity_translucent_emissive could not find sampler named Sampler2 in the specified shader program. version string: 150New VGPU Shader source: #version 320 es #define texture2D texture #define attribute in #define varying out precision highp float; precision highp int; #line 0 1 #define MINECRAFT_LIGHT_POWER (0.6) #define MINECRAFT_AMBIENT_LIGHT (0.4) vec4 minecraft_mix_light(vec3 lightDir0, vec3 lightDir1, vec3 normal, vec4 color) { lightDir0 = normalize(lightDir0); lightDir1 = normalize(lightDir1); float light0 = max(0.00000, dot(lightDir0, normal)); float light1 = max(0.00000, dot(lightDir1, normal)); float lightAccum = min(1.00000, (light0 + light1) * MINECRAFT_LIGHT_POWER + MINECRAFT_AMBIENT_LIGHT); return vec4(color.rgb * lightAccum, color.a); } vec4 minecraft_sample_lightmap(sampler2D lightMap, ivec2 uv) { return texture(lightMap, clamp(uv / 256.000, vec2(0.500000 / 16.0000), vec2(15.5000 / 16.0000))); } #line 0 2 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, int shape) { if (shape == 0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 4 0 in vec3 Position; in vec4 Color; in vec2 UV0; in ivec2 UV1; in ivec2 UV2; in vec3 Normal; uniform sampler2D Sampler1; uniform sampler2D Sampler2; uniform mat4 ModelViewMat; uniform mat4 ProjMat; uniform mat3 IViewRotMat; uniform int FogShape; uniform vec3 Light0_Direction; uniform vec3 Light1_Direction; out float vertexDistance; out vec4 vertexColor; out vec4 lightMapColor; out vec4 overlayColor; out vec2 texCoord0; out vec4 normal; void main() { gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.00000); vertexDistance = fog_distance(ModelViewMat, IViewRotMat * Position, FogShape); vertexColor = minecraft_mix_light(Light0_Direction, Light1_Direction, Normal, Color); lightMapColor = texelFetch(Sampler2, UV2 / 16, 0); overlayColor = texelFetch(Sampler1, UV1, 0); texCoord0 = UV0; normal = ProjMat * ModelViewMat * vec4(Normal, 0.00000); } New VGPU Shader conversion: #version 320 es #ifdef GL_OES_texture_storage_multisample_2d_array #extension GL_OES_texture_storage_multisample_2d_array : enable #endif #ifdef GL_EXT_texture_buffer #extension GL_EXT_texture_buffer : enable #endif #ifdef GL_EXT_texture_cube_map_array #extension GL_EXT_texture_cube_map_array : enable #endif #ifdef GL_EXT_shader_non_constant_global_initializers #extension GL_EXT_shader_non_constant_global_initializers : enable #endif precision highp float; precision lowp image2D; precision lowp image2DArray; precision lowp image3D; precision lowp imageCube; precision lowp sampler2D; precision lowp sampler3D; precision lowp sampler2DShadow; precision lowp samplerCubeShadow; precision lowp sampler2DArray; precision lowp sampler2DArrayShadow; precision lowp samplerCube; #ifdef GL_EXT_texture_buffer precision lowp samplerBuffer; precision lowp imageBuffer; #endif #ifdef GL_EXT_texture_cube_map_array precision lowp imageCubeArray; precision lowp samplerCubeArray; precision lowp samplerCubeArrayShadow; #endif #ifdef GL_OES_texture_storage_multisample_2d_array precision lowp sampler2DMS; precision lowp sampler2DMSArray; #endif vec4 vgpu_texelFetch(sampler2D sampler, vec2 P, float lod){return texelFetch(sampler, ivec2(P), int(lod));} vec4 vgpu_texelFetch(sampler3D sampler, vec3 P, float lod){return texelFetch(sampler, ivec3(P), int(lod));} vec4 vgpu_texelFetch(sampler2DArray sampler, vec3 P, float lod){return texelFetch(sampler, ivec3(P), int(lod));} #ifdef GL_EXT_texture_buffer vec4 vgpu_texelFetch(samplerBuffer sampler, float P){return texelFetch(sampler, int(P));} #endif #ifdef GL_OES_texture_storage_multisample_2d_array vec4 vgpu_texelFetch(sampler2DMS sampler, vec2 P, float _sample){return texelFetch(sampler, ivec2(P), int(_sample));} vec4 vgpu_texelFetch(sampler2DMSArray sampler, vec3 P, float _sample){return texelFetch(sampler, ivec3(P), int(_sample));} #endif #line 0 1 #define MINECRAFT_LIGHT_POWER (0.6) #define MINECRAFT_AMBIENT_LIGHT (0.4) vec4 minecraft_mix_light(vec3 lightDir0, vec3 lightDir1, vec3 normal, vec4 color) { lightDir0 = normalize(lightDir0); lightDir1 = normalize(lightDir1); float light0 = max(0.00000, dot(lightDir0, normal)); float light1 = max(0.00000, dot(lightDir1, normal)); float lightAccum = min(1.00000, (light0 + light1) * MINECRAFT_LIGHT_POWER + MINECRAFT_AMBIENT_LIGHT); return vec4(color.rgb * lightAccum, color.a); } vec4 minecraft_sample_lightmap(sampler2D lightMap, vec2 uv) { return texture(lightMap, clamp(uv / 256.000, vec2(0.500000 / 16.0000), vec2(15.5000 / 16.0000))); } #line 0 2 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, float shape) { if (shape == 0.0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 4 0 in vec3 Position; in vec4 Color; in vec2 UV0; in vec2 UV1; in vec2 UV2; in vec3 Normal; uniform sampler2D Sampler1; uniform sampler2D Sampler2; uniform mat4 ModelViewMat; uniform mat4 ProjMat; uniform mat3 IViewRotMat; uniform float FogShape; uniform vec3 Light0_Direction; uniform vec3 Light1_Direction; out float vertexDistance; out vec4 vertexColor; out vec4 lightMapColor; out vec4 overlayColor; out vec2 texCoord0; out vec4 normal; void main() { gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.00000); vertexDistance = fog_distance(ModelViewMat, IViewRotMat * Position, FogShape); vertexColor = minecraft_mix_light(Light0_Direction, Light1_Direction, Normal, Color); lightMapColor = vgpu_texelFetch(Sampler2, UV2 / 16.0, 0.0); overlayColor = vgpu_texelFetch(Sampler1, UV1, 0.0); texCoord0 = UV0; normal = ProjMat * ModelViewMat * vec4(Normal, 0.00000); } version string: 150New VGPU Shader source: #version 320 es #define texture2D texture #define attribute in #define varying out precision highp float; precision highp int; #line 0 1 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, int shape) { if (shape == 0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 3 0 uniform sampler2D Sampler0; uniform vec4 ColorModulator; uniform float FogStart; uniform float FogEnd; uniform vec4 FogColor; in float vertexDistance; in vec4 vertexColor; in vec4 lightMapColor; in vec4 overlayColor; in vec2 texCoord0; in vec4 normal; out vec4 fragColor; void main() { vec4 color = texture(Sampler0, texCoord0); if (color.a < 0.100000) { discard; } color *= vertexColor * ColorModulator; color.rgb = mix(overlayColor.rgb, color.rgb, overlayColor.a); color *= lightMapColor; fragColor = linear_fog(color, vertexDistance, FogStart, FogEnd, FogColor); } New VGPU Shader conversion: #version 320 es #ifdef GL_OES_texture_storage_multisample_2d_array #extension GL_OES_texture_storage_multisample_2d_array : enable #endif #ifdef GL_EXT_texture_buffer #extension GL_EXT_texture_buffer : enable #endif #ifdef GL_EXT_texture_cube_map_array #extension GL_EXT_texture_cube_map_array : enable #endif #ifdef GL_EXT_shader_non_constant_global_initializers #extension GL_EXT_shader_non_constant_global_initializers : enable #endif precision highp float; precision lowp image2D; precision lowp image2DArray; precision lowp image3D; precision lowp imageCube; precision lowp sampler2D; precision lowp sampler3D; precision lowp sampler2DShadow; precision lowp samplerCubeShadow; precision lowp sampler2DArray; precision lowp sampler2DArrayShadow; precision lowp samplerCube; #ifdef GL_EXT_texture_buffer precision lowp samplerBuffer; precision lowp imageBuffer; #endif #ifdef GL_EXT_texture_cube_map_array precision lowp imageCubeArray; precision lowp samplerCubeArray; precision lowp samplerCubeArrayShadow; #endif #ifdef GL_OES_texture_storage_multisample_2d_array precision lowp sampler2DMS; precision lowp sampler2DMSArray; #endif #line 0 1 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, float shape) { if (shape == 0.0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 3 0 uniform sampler2D Sampler0; uniform vec4 ColorModulator; uniform float FogStart; uniform float FogEnd; uniform vec4 FogColor; in float vertexDistance; in vec4 vertexColor; in vec4 lightMapColor; in vec4 overlayColor; in vec2 texCoord0; in vec4 normal; out vec4 fragColor; void main() { vec4 color = texture(Sampler0, texCoord0); if (color.a < 0.100000) { discard; } color *= vertexColor * ColorModulator; color.rgb = mix(overlayColor.rgb, color.rgb, overlayColor.a); color *= lightMapColor; fragColor = linear_fog(color, vertexDistance, FogStart, FogEnd, FogColor); } version string: 150New VGPU Shader source: #version 320 es #define texture2D texture #define attribute in #define varying out precision highp float; precision highp int; in vec3 Position; in vec4 Color; in vec2 UV0; uniform mat4 ModelViewMat; uniform mat4 ProjMat; out vec4 vertexColor; out vec2 texCoord0; void main() { gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.00000); vertexColor = Color; texCoord0 = UV0; } New VGPU Shader conversion: #version 320 es #ifdef GL_OES_texture_storage_multisample_2d_array #extension GL_OES_texture_storage_multisample_2d_array : enable #endif #ifdef GL_EXT_texture_buffer #extension GL_EXT_texture_buffer : enable #endif #ifdef GL_EXT_texture_cube_map_array #extension GL_EXT_texture_cube_map_array : enable #endif #ifdef GL_EXT_shader_non_constant_global_initializers #extension GL_EXT_shader_non_constant_global_initializers : enable #endif precision highp float; precision lowp image2D; precision lowp image2DArray; precision lowp image3D; precision lowp imageCube; precision lowp sampler2D; precision lowp sampler3D; precision lowp sampler2DShadow; precision lowp samplerCubeShadow; precision lowp sampler2DArray; precision lowp sampler2DArrayShadow; precision lowp samplerCube; #ifdef GL_EXT_texture_buffer precision lowp samplerBuffer; precision lowp imageBuffer; #endif #ifdef GL_EXT_texture_cube_map_array precision lowp imageCubeArray; precision lowp samplerCubeArray; precision lowp samplerCubeArrayShadow; #endif #ifdef GL_OES_texture_storage_multisample_2d_array precision lowp sampler2DMS; precision lowp sampler2DMSArray; #endif in vec3 Position; in vec4 Color; in vec2 UV0; uniform mat4 ModelViewMat; uniform mat4 ProjMat; out vec4 vertexColor; out vec2 texCoord0; void main() { gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.00000); vertexColor = Color; texCoord0 = UV0; } version string: 150New VGPU Shader source: #version 320 es #define texture2D texture #define attribute in #define varying out precision highp float; precision highp int; #line 0 1 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, int shape) { if (shape == 0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 3 0 uniform sampler2D Sampler0; uniform mat4 ProjMat; uniform vec4 ColorModulator; uniform float FogStart; uniform float FogEnd; uniform vec4 FogColor; in vec4 vertexColor; in vec2 texCoord0; out vec4 fragColor; void main() { vec4 color = texture(Sampler0, texCoord0); color *= vertexColor * ColorModulator; float fragmentDistance = -ProjMat[3].z / ((gl_FragCoord.z) * -2.00000 + 1.00000 - ProjMat[2].z); fragColor = linear_fog(color, fragmentDistance, FogStart, FogEnd, FogColor); } New VGPU Shader conversion: #version 320 es #ifdef GL_OES_texture_storage_multisample_2d_array #extension GL_OES_texture_storage_multisample_2d_array : enable #endif #ifdef GL_EXT_texture_buffer #extension GL_EXT_texture_buffer : enable #endif #ifdef GL_EXT_texture_cube_map_array #extension GL_EXT_texture_cube_map_array : enable #endif #ifdef GL_EXT_shader_non_constant_global_initializers #extension GL_EXT_shader_non_constant_global_initializers : enable #endif precision highp float; precision lowp image2D; precision lowp image2DArray; precision lowp image3D; precision lowp imageCube; precision lowp sampler2D; precision lowp sampler3D; precision lowp sampler2DShadow; precision lowp samplerCubeShadow; precision lowp sampler2DArray; precision lowp sampler2DArrayShadow; precision lowp samplerCube; #ifdef GL_EXT_texture_buffer precision lowp samplerBuffer; precision lowp imageBuffer; #endif #ifdef GL_EXT_texture_cube_map_array precision lowp imageCubeArray; precision lowp samplerCubeArray; precision lowp samplerCubeArrayShadow; #endif #ifdef GL_OES_texture_storage_multisample_2d_array precision lowp sampler2DMS; precision lowp sampler2DMSArray; #endif #line 0 1 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, float shape) { if (shape == 0.0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 3 0 uniform sampler2D Sampler0; uniform mat4 ProjMat; uniform vec4 ColorModulator; uniform float FogStart; uniform float FogEnd; uniform vec4 FogColor; in vec4 vertexColor; in vec2 texCoord0; out vec4 fragColor; void main() { vec4 color = texture(Sampler0, texCoord0); color *= vertexColor * ColorModulator; float fragmentDistance = -ProjMat[3].z / ((gl_FragCoord.z) * -2.00000 + 1.00000 - ProjMat[2].z); fragColor = linear_fog(color, fragmentDistance, FogStart, FogEnd, FogColor); } version string: 150New VGPU Shader source: #version 320 es #define texture2D texture #define attribute in #define varying out precision highp float; precision highp int; #line 0 1 #define MINECRAFT_LIGHT_POWER (0.6) #define MINECRAFT_AMBIENT_LIGHT (0.4) vec4 minecraft_mix_light(vec3 lightDir0, vec3 lightDir1, vec3 normal, vec4 color) { lightDir0 = normalize(lightDir0); lightDir1 = normalize(lightDir1); float light0 = max(0.00000, dot(lightDir0, normal)); float light1 = max(0.00000, dot(lightDir1, normal)); float lightAccum = min(1.00000, (light0 + light1) * MINECRAFT_LIGHT_POWER + MINECRAFT_AMBIENT_LIGHT); return vec4(color.rgb * lightAccum, color.a); } vec4 minecraft_sample_lightmap(sampler2D lightMap, ivec2 uv) { return texture(lightMap, clamp(uv / 256.000, vec2(0.500000 / 16.0000), vec2(15.5000 / 16.0000))); } #line 0 2 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, int shape) { if (shape == 0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 4 0 in vec3 Position; in vec4 Color; in vec2 UV0; in ivec2 UV1; in ivec2 UV2; in vec3 Normal; uniform sampler2D Sampler1; uniform sampler2D Sampler2; uniform mat4 ModelViewMat; uniform mat4 ProjMat; uniform mat3 IViewRotMat; uniform int FogShape; uniform vec3 Light0_Direction; uniform vec3 Light1_Direction; out float vertexDistance; out vec4 vertexColor; out vec4 overlayColor; out vec2 texCoord0; out vec4 normal; void main() { gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.00000); vertexDistance = fog_distance(ModelViewMat, IViewRotMat * Position, FogShape); vertexColor = minecraft_mix_light(Light0_Direction, Light1_Direction, Normal, Color) * texelFetch(Sampler2, UV2 / 16, 0); overlayColor = texelFetch(Sampler1, UV1, 0); texCoord0 = UV0; normal = ProjMat * ModelViewMat * vec4(Normal, 0.00000); } New VGPU Shader conversion: #version 320 es #ifdef GL_OES_texture_storage_multisample_2d_array #extension GL_OES_texture_storage_multisample_2d_array : enable #endif #ifdef GL_EXT_texture_buffer #extension GL_EXT_texture_buffer : enable #endif #ifdef GL_EXT_texture_cube_map_array #extension GL_EXT_texture_cube_map_array : enable #endif #ifdef GL_EXT_shader_non_constant_global_initializers #extension GL_EXT_shader_non_constant_global_initializers : enable #endif precision highp float; precision lowp image2D; precision lowp image2DArray; precision lowp image3D; precision lowp imageCube; precision lowp sampler2D; precision lowp sampler3D; precision lowp sampler2DShadow; precision lowp samplerCubeShadow; precision lowp sampler2DArray; precision lowp sampler2DArrayShadow; precision lowp samplerCube; #ifdef GL_EXT_texture_buffer precision lowp samplerBuffer; precision lowp imageBuffer; #endif #ifdef GL_EXT_texture_cube_map_array precision lowp imageCubeArray; precision lowp samplerCubeArray; precision lowp samplerCubeArrayShadow; #endif #ifdef GL_OES_texture_storage_multisample_2d_array precision lowp sampler2DMS; precision lowp sampler2DMSArray; #endif vec4 vgpu_texelFetch(sampler2D sampler, vec2 P, float lod){return texelFetch(sampler, ivec2(P), int(lod));} vec4 vgpu_texelFetch(sampler3D sampler, vec3 P, float lod){return texelFetch(sampler, ivec3(P), int(lod));} vec4 vgpu_texelFetch(sampler2DArray sampler, vec3 P, float lod){return texelFetch(sampler, ivec3(P), int(lod));} #ifdef GL_EXT_texture_buffer vec4 vgpu_texelFetch(samplerBuffer sampler, float P){return texelFetch(sampler, int(P));} #endif #ifdef GL_OES_texture_storage_multisample_2d_array vec4 vgpu_texelFetch(sampler2DMS sampler, vec2 P, float _sample){return texelFetch(sampler, ivec2(P), int(_sample));} vec4 vgpu_texelFetch(sampler2DMSArray sampler, vec3 P, float _sample){return texelFetch(sampler, ivec3(P), int(_sample));} #endif #line 0 1 #define MINECRAFT_LIGHT_POWER (0.6) #define MINECRAFT_AMBIENT_LIGHT (0.4) vec4 minecraft_mix_light(vec3 lightDir0, vec3 lightDir1, vec3 normal, vec4 color) { lightDir0 = normalize(lightDir0); lightDir1 = normalize(lightDir1); float light0 = max(0.00000, dot(lightDir0, normal)); float light1 = max(0.00000, dot(lightDir1, normal)); float lightAccum = min(1.00000, (light0 + light1) * MINECRAFT_LIGHT_POWER + MINECRAFT_AMBIENT_LIGHT); return vec4(color.rgb * lightAccum, color.a); } vec4 minecraft_sample_lightmap(sampler2D lightMap, vec2 uv) { return texture(lightMap, clamp(uv / 256.000, vec2(0.500000 / 16.0000), vec2(15.5000 / 16.0000))); } #line 0 2 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, float shape) { if (shape == 0.0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 4 0 in vec3 Position; in vec4 Color; in vec2 UV0; in vec2 UV1; in vec2 UV2; in vec3 Normal; uniform sampler2D Sampler1; uniform sampler2D Sampler2; uniform mat4 ModelViewMat; uniform mat4 ProjMat; uniform mat3 IViewRotMat; uniform float FogShape; uniform vec3 Light0_Direction; uniform vec3 Light1_Direction; out float vertexDistance; out vec4 vertexColor; out vec4 overlayColor; out vec2 texCoord0; out vec4 normal; void main() { gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.00000); vertexDistance = fog_distance(ModelViewMat, IViewRotMat * Position, FogShape); vertexColor = minecraft_mix_light(Light0_Direction, Light1_Direction, Normal, Color) * vgpu_texelFetch(Sampler2, UV2 / 16.0, 0.0); overlayColor = vgpu_texelFetch(Sampler1, UV1, 0.0); texCoord0 = UV0; normal = ProjMat * ModelViewMat * vec4(Normal, 0.00000); } version string: 150New VGPU Shader source: #version 320 es #define texture2D texture #define attribute in #define varying out precision highp float; precision highp int; #line 0 1 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, int shape) { if (shape == 0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 3 0 uniform sampler2D Sampler0; uniform vec4 ColorModulator; uniform float FogStart; uniform float FogEnd; uniform vec4 FogColor; in float vertexDistance; in vec4 vertexColor; in vec4 overlayColor; in vec2 texCoord0; in vec4 normal; out vec4 fragColor; void main() { vec4 color = texture(Sampler0, texCoord0); if (color.a < 0.100000) { discard; } color.rgb = mix(overlayColor.rgb, color.rgb, overlayColor.a); color *= vertexColor * ColorModulator; fragColor = linear_fog(color, vertexDistance, FogStart, FogEnd, FogColor); } New VGPU Shader conversion: #version 320 es #ifdef GL_OES_texture_storage_multisample_2d_array #extension GL_OES_texture_storage_multisample_2d_array : enable #endif #ifdef GL_EXT_texture_buffer #extension GL_EXT_texture_buffer : enable #endif #ifdef GL_EXT_texture_cube_map_array #extension GL_EXT_texture_cube_map_array : enable #endif #ifdef GL_EXT_shader_non_constant_global_initializers #extension GL_EXT_shader_non_constant_global_initializers : enable #endif precision highp float; precision lowp image2D; precision lowp image2DArray; precision lowp image3D; precision lowp imageCube; precision lowp sampler2D; precision lowp sampler3D; precision lowp sampler2DShadow; precision lowp samplerCubeShadow; precision lowp sampler2DArray; precision lowp sampler2DArrayShadow; precision lowp samplerCube; #ifdef GL_EXT_texture_buffer precision lowp samplerBuffer; precision lowp imageBuffer; #endif #ifdef GL_EXT_texture_cube_map_array precision lowp imageCubeArray; precision lowp samplerCubeArray; precision lowp samplerCubeArrayShadow; #endif #ifdef GL_OES_texture_storage_multisample_2d_array precision lowp sampler2DMS; precision lowp sampler2DMSArray; #endif #line 0 1 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, float shape) { if (shape == 0.0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 3 0 uniform sampler2D Sampler0; uniform vec4 ColorModulator; uniform float FogStart; uniform float FogEnd; uniform vec4 FogColor; in float vertexDistance; in vec4 vertexColor; in vec4 overlayColor; in vec2 texCoord0; in vec4 normal; out vec4 fragColor; void main() { vec4 color = texture(Sampler0, texCoord0); if (color.a < 0.100000) { discard; } color.rgb = mix(overlayColor.rgb, color.rgb, overlayColor.a); color *= vertexColor * ColorModulator; fragColor = linear_fog(color, vertexDistance, FogStart, FogEnd, FogColor); } version string: 150New VGPU Shader source: #version 320 es #define texture2D texture #define attribute in #define varying out precision highp float; precision highp int; #line 0 1 #define MINECRAFT_LIGHT_POWER (0.6) #define MINECRAFT_AMBIENT_LIGHT (0.4) vec4 minecraft_mix_light(vec3 lightDir0, vec3 lightDir1, vec3 normal, vec4 color) { lightDir0 = normalize(lightDir0); lightDir1 = normalize(lightDir1); float light0 = max(0.00000, dot(lightDir0, normal)); float light1 = max(0.00000, dot(lightDir1, normal)); float lightAccum = min(1.00000, (light0 + light1) * MINECRAFT_LIGHT_POWER + MINECRAFT_AMBIENT_LIGHT); return vec4(color.rgb * lightAccum, color.a); } vec4 minecraft_sample_lightmap(sampler2D lightMap, ivec2 uv) { return texture(lightMap, clamp(uv / 256.000, vec2(0.500000 / 16.0000), vec2(15.5000 / 16.0000))); } #line 0 2 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, int shape) { if (shape == 0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 4 0 in vec3 Position; in vec4 Color; in vec2 UV0; in ivec2 UV2; in vec3 Normal; uniform sampler2D Sampler2; uniform mat4 ModelViewMat; uniform mat4 ProjMat; uniform mat3 IViewRotMat; uniform int FogShape; uniform vec3 Light0_Direction; uniform vec3 Light1_Direction; out float vertexDistance; out vec4 vertexColor; out vec2 texCoord0; out vec4 normal; void main() { gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.00000); vertexDistance = fog_distance(ModelViewMat, IViewRotMat * Position, FogShape); vertexColor = minecraft_mix_light(Light0_Direction, Light1_Direction, Normal, Color) * texelFetch(Sampler2, UV2 / 16, 0); texCoord0 = UV0; normal = ProjMat * ModelViewMat * vec4(Normal, 0.00000); } New VGPU Shader conversion: #version 320 es #ifdef GL_OES_texture_storage_multisample_2d_array #extension GL_OES_texture_storage_multisample_2d_array : enable #endif #ifdef GL_EXT_texture_buffer #extension GL_EXT_texture_buffer : enable #endif #ifdef GL_EXT_texture_cube_map_array #extension GL_EXT_texture_cube_map_array : enable #endif #ifdef GL_EXT_shader_non_constant_global_initializers #extension GL_EXT_shader_non_constant_global_initializers : enable #endif precision highp float; precision lowp image2D; precision lowp image2DArray; precision lowp image3D; precision lowp imageCube; precision lowp sampler2D; precision lowp sampler3D; precision lowp sampler2DShadow; precision lowp samplerCubeShadow; precision lowp sampler2DArray; precision lowp sampler2DArrayShadow; precision lowp samplerCube; #ifdef GL_EXT_texture_buffer precision lowp samplerBuffer; precision lowp imageBuffer; #endif #ifdef GL_EXT_texture_cube_map_array precision lowp imageCubeArray; precision lowp samplerCubeArray; precision lowp samplerCubeArrayShadow; #endif #ifdef GL_OES_texture_storage_multisample_2d_array precision lowp sampler2DMS; precision lowp sampler2DMSArray; #endif vec4 vgpu_texelFetch(sampler2D sampler, vec2 P, float lod){return texelFetch(sampler, ivec2(P), int(lod));} vec4 vgpu_texelFetch(sampler3D sampler, vec3 P, float lod){return texelFetch(sampler, ivec3(P), int(lod));} vec4 vgpu_texelFetch(sampler2DArray sampler, vec3 P, float lod){return texelFetch(sampler, ivec3(P), int(lod));} #ifdef GL_EXT_texture_buffer vec4 vgpu_texelFetch(samplerBuffer sampler, float P){return texelFetch(sampler, int(P));} #endif #ifdef GL_OES_texture_storage_multisample_2d_array vec4 vgpu_texelFetch(sampler2DMS sampler, vec2 P, float _sample){return texelFetch(sampler, ivec2(P), int(_sample));} vec4 vgpu_texelFetch(sampler2DMSArray sampler, vec3 P, float _sample){return texelFetch(sampler, ivec3(P), int(_sample));} #endif #line 0 1 #define MINECRAFT_LIGHT_POWER (0.6) #define MINECRAFT_AMBIENT_LIGHT (0.4) vec4 minecraft_mix_light(vec3 lightDir0, vec3 lightDir1, vec3 normal, vec4 color) { lightDir0 = normalize(lightDir0); lightDir1 = normalize(lightDir1); float light0 = max(0.00000, dot(lightDir0, normal)); float light1 = max(0.00000, dot(lightDir1, normal)); float lightAccum = min(1.00000, (light0 + light1) * MINECRAFT_LIGHT_POWER + MINECRAFT_AMBIENT_LIGHT); return vec4(color.rgb * lightAccum, color.a); } vec4 minecraft_sample_lightmap(sampler2D lightMap, vec2 uv) { return texture(lightMap, clamp(uv / 256.000, vec2(0.500000 / 16.0000), vec2(15.5000 / 16.0000))); } #line 0 2 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, float shape) { if (shape == 0.0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 4 0 in vec3 Position; in vec4 Color; in vec2 UV0; in vec2 UV2; in vec3 Normal; uniform sampler2D Sampler2; uniform mat4 ModelViewMat; uniform mat4 ProjMat; uniform mat3 IViewRotMat; uniform float FogShape; uniform vec3 Light0_Direction; uniform vec3 Light1_Direction; out float vertexDistance; out vec4 vertexColor; out vec2 texCoord0; out vec4 normal; void main() { gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.00000); vertexDistance = fog_distance(ModelViewMat, IViewRotMat * Position, FogShape); vertexColor = minecraft_mix_light(Light0_Direction, Light1_Direction, Normal, Color) * vgpu_texelFetch(Sampler2, UV2 / 16.0, 0.0); texCoord0 = UV0; normal = ProjMat * ModelViewMat * vec4(Normal, 0.00000); } version string: 150New VGPU Shader source: #version 320 es #define texture2D texture #define attribute in #define varying out precision highp float; precision highp int; #line 0 1 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, int shape) { if (shape == 0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 3 0 uniform sampler2D Sampler0; uniform vec4 ColorModulator; uniform float FogStart; uniform float FogEnd; uniform vec4 FogColor; in float vertexDistance; in vec4 vertexColor; in vec2 texCoord0; in vec4 normal; out vec4 fragColor; void main() { vec4 color = texture(Sampler0, texCoord0) * vertexColor * ColorModulator; fragColor = linear_fog(color, vertexDistance, FogStart, FogEnd, FogColor); } New VGPU Shader conversion: #version 320 es #ifdef GL_OES_texture_storage_multisample_2d_array #extension GL_OES_texture_storage_multisample_2d_array : enable #endif #ifdef GL_EXT_texture_buffer #extension GL_EXT_texture_buffer : enable #endif #ifdef GL_EXT_texture_cube_map_array #extension GL_EXT_texture_cube_map_array : enable #endif #ifdef GL_EXT_shader_non_constant_global_initializers #extension GL_EXT_shader_non_constant_global_initializers : enable #endif precision highp float; precision lowp image2D; precision lowp image2DArray; precision lowp image3D; precision lowp imageCube; precision lowp sampler2D; precision lowp sampler3D; precision lowp sampler2DShadow; precision lowp samplerCubeShadow; precision lowp sampler2DArray; precision lowp sampler2DArrayShadow; precision lowp samplerCube; #ifdef GL_EXT_texture_buffer precision lowp samplerBuffer; precision lowp imageBuffer; #endif #ifdef GL_EXT_texture_cube_map_array precision lowp imageCubeArray; precision lowp samplerCubeArray; precision lowp samplerCubeArrayShadow; #endif #ifdef GL_OES_texture_storage_multisample_2d_array precision lowp sampler2DMS; precision lowp sampler2DMSArray; #endif #line 0 1 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, float shape) { if (shape == 0.0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 3 0 uniform sampler2D Sampler0; uniform vec4 ColorModulator; uniform float FogStart; uniform float FogEnd; uniform vec4 FogColor; in float vertexDistance; in vec4 vertexColor; in vec2 texCoord0; in vec4 normal; out vec4 fragColor; void main() { vec4 color = texture(Sampler0, texCoord0) * vertexColor * ColorModulator; fragColor = linear_fog(color, vertexDistance, FogStart, FogEnd, FogColor); } version string: 150New VGPU Shader source: #version 320 es #define texture2D texture #define attribute in #define varying out precision highp float; precision highp int; #line 0 1 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, int shape) { if (shape == 0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 3 0 in vec3 Position; in vec4 Color; in vec2 UV0; uniform mat4 ModelViewMat; uniform mat4 ProjMat; uniform mat3 IViewRotMat; uniform int FogShape; out float vertexDistance; out vec4 vertexColor; out vec2 texCoord0; void main() { gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.00000); vertexDistance = fog_distance(ModelViewMat, IViewRotMat * Position, FogShape); vertexColor = Color; texCoord0 = UV0; } New VGPU Shader conversion: #version 320 es #ifdef GL_OES_texture_storage_multisample_2d_array #extension GL_OES_texture_storage_multisample_2d_array : enable #endif #ifdef GL_EXT_texture_buffer #extension GL_EXT_texture_buffer : enable #endif #ifdef GL_EXT_texture_cube_map_array #extension GL_EXT_texture_cube_map_array : enable #endif #ifdef GL_EXT_shader_non_constant_global_initializers #extension GL_EXT_shader_non_constant_global_initializers : enable #endif precision highp float; precision lowp image2D; precision lowp image2DArray; precision lowp image3D; precision lowp imageCube; precision lowp sampler2D; precision lowp sampler3D; precision lowp sampler2DShadow; precision lowp samplerCubeShadow; precision lowp sampler2DArray; precision lowp sampler2DArrayShadow; precision lowp samplerCube; #ifdef GL_EXT_texture_buffer precision lowp samplerBuffer; precision lowp imageBuffer; #endif #ifdef GL_EXT_texture_cube_map_array precision lowp imageCubeArray; precision lowp samplerCubeArray; precision lowp samplerCubeArrayShadow; #endif #ifdef GL_OES_texture_storage_multisample_2d_array precision lowp sampler2DMS; precision lowp sampler2DMSArray; #endif #line 0 1 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, float shape) { if (shape == 0.0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 3 0 in vec3 Position; in vec4 Color; in vec2 UV0; uniform mat4 ModelViewMat; uniform mat4 ProjMat; uniform mat3 IViewRotMat; uniform float FogShape; out float vertexDistance; out vec4 vertexColor; out vec2 texCoord0; void main() { gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.00000); vertexDistance = fog_distance(ModelViewMat, IViewRotMat * Position, FogShape); vertexColor = Color; texCoord0 = UV0; } version string: 150New VGPU Shader source: #version 320 es #define texture2D texture #define attribute in #define varying out precision highp float; precision highp int; #line 0 1 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, int shape) { if (shape == 0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 3 0 uniform sampler2D Sampler0; uniform vec4 ColorModulator; uniform float FogStart; uniform float FogEnd; uniform vec4 FogColor; in float vertexDistance; in vec4 vertexColor; in vec2 texCoord0; out vec4 fragColor; void main() { vec4 color = texture(Sampler0, clamp(texCoord0, 0.00000, 1.00000)); color *= vertexColor * ColorModulator; fragColor = linear_fog(color, vertexDistance, FogStart, FogEnd, FogColor); } New VGPU Shader conversion: #version 320 es #ifdef GL_OES_texture_storage_multisample_2d_array #extension GL_OES_texture_storage_multisample_2d_array : enable #endif #ifdef GL_EXT_texture_buffer #extension GL_EXT_texture_buffer : enable #endif #ifdef GL_EXT_texture_cube_map_array #extension GL_EXT_texture_cube_map_array : enable #endif #ifdef GL_EXT_shader_non_constant_global_initializers #extension GL_EXT_shader_non_constant_global_initializers : enable #endif precision highp float; precision lowp image2D; precision lowp image2DArray; precision lowp image3D; precision lowp imageCube; precision lowp sampler2D; precision lowp sampler3D; precision lowp sampler2DShadow; precision lowp samplerCubeShadow; precision lowp sampler2DArray; precision lowp sampler2DArrayShadow; precision lowp samplerCube; #ifdef GL_EXT_texture_buffer precision lowp samplerBuffer; precision lowp imageBuffer; #endif #ifdef GL_EXT_texture_cube_map_array precision lowp imageCubeArray; precision lowp samplerCubeArray; precision lowp samplerCubeArrayShadow; #endif #ifdef GL_OES_texture_storage_multisample_2d_array precision lowp sampler2DMS; precision lowp sampler2DMSArray; #endif #line 0 1 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, float shape) { if (shape == 0.0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 3 0 uniform sampler2D Sampler0; uniform vec4 ColorModulator; uniform float FogStart; uniform float FogEnd; uniform vec4 FogColor; in float vertexDistance; in vec4 vertexColor; in vec2 texCoord0; out vec4 fragColor; void main() { vec4 color = texture(Sampler0, clamp(texCoord0, 0.00000, 1.00000)); color *= vertexColor * ColorModulator; fragColor = linear_fog(color, vertexDistance, FogStart, FogEnd, FogColor); } version string: 150New VGPU Shader source: #version 320 es #define texture2D texture #define attribute in #define varying out precision highp float; precision highp int; in vec3 Position; in vec4 Color; in vec2 UV0; in vec2 UV1; in vec2 UV2; in vec3 Normal; uniform mat4 ModelViewMat; uniform mat4 ProjMat; out vec4 vertexColor; out vec2 texCoord0; out vec2 texCoord1; out vec2 texCoord2; out vec4 normal; void main() { gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.00000); vertexColor = Color; texCoord0 = UV0; texCoord1 = UV1; texCoord2 = UV2; normal = ProjMat * ModelViewMat * vec4(Normal, 0.00000); } New VGPU Shader conversion: #version 320 es #ifdef GL_OES_texture_storage_multisample_2d_array #extension GL_OES_texture_storage_multisample_2d_array : enable #endif #ifdef GL_EXT_texture_buffer #extension GL_EXT_texture_buffer : enable #endif #ifdef GL_EXT_texture_cube_map_array #extension GL_EXT_texture_cube_map_array : enable #endif #ifdef GL_EXT_shader_non_constant_global_initializers #extension GL_EXT_shader_non_constant_global_initializers : enable #endif precision highp float; precision lowp image2D; precision lowp image2DArray; precision lowp image3D; precision lowp imageCube; precision lowp sampler2D; precision lowp sampler3D; precision lowp sampler2DShadow; precision lowp samplerCubeShadow; precision lowp sampler2DArray; precision lowp sampler2DArrayShadow; precision lowp samplerCube; #ifdef GL_EXT_texture_buffer precision lowp samplerBuffer; precision lowp imageBuffer; #endif #ifdef GL_EXT_texture_cube_map_array precision lowp imageCubeArray; precision lowp samplerCubeArray; precision lowp samplerCubeArrayShadow; #endif #ifdef GL_OES_texture_storage_multisample_2d_array precision lowp sampler2DMS; precision lowp sampler2DMSArray; #endif in vec3 Position; in vec4 Color; in vec2 UV0; in vec2 UV1; in vec2 UV2; in vec3 Normal; uniform mat4 ModelViewMat; uniform mat4 ProjMat; out vec4 vertexColor; out vec2 texCoord0; out vec2 texCoord1; out vec2 texCoord2; out vec4 normal; void main() { gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.00000); vertexColor = Color; texCoord0 = UV0; texCoord1 = UV1; texCoord2 = UV2; normal = ProjMat * ModelViewMat * vec4(Normal, 0.00000); } version string: 150New VGPU Shader source: #version 320 es #define texture2D texture #define attribute in #define varying out precision highp float; precision highp int; uniform sampler2D Sampler0; in vec4 vertexColor; in vec2 texCoord0; in vec2 texCoord1; in vec2 texCoord2; in vec4 normal; out vec4 fragColor; void main() { vec4 color = texture(Sampler0, texCoord0); if (color.a < vertexColor.a) { discard; } fragColor = color; } New VGPU Shader conversion: #version 320 es #ifdef GL_OES_texture_storage_multisample_2d_array #extension GL_OES_texture_storage_multisample_2d_array : enable #endif #ifdef GL_EXT_texture_buffer #extension GL_EXT_texture_buffer : enable #endif #ifdef GL_EXT_texture_cube_map_array #extension GL_EXT_texture_cube_map_array : enable #endif #ifdef GL_EXT_shader_non_constant_global_initializers #extension GL_EXT_shader_non_constant_global_initializers : enable #endif precision highp float; precision lowp image2D; precision lowp image2DArray; precision lowp image3D; precision lowp imageCube; precision lowp sampler2D; precision lowp sampler3D; precision lowp sampler2DShadow; precision lowp samplerCubeShadow; precision lowp sampler2DArray; precision lowp sampler2DArrayShadow; precision lowp samplerCube; #ifdef GL_EXT_texture_buffer precision lowp samplerBuffer; precision lowp imageBuffer; #endif #ifdef GL_EXT_texture_cube_map_array precision lowp imageCubeArray; precision lowp samplerCubeArray; precision lowp samplerCubeArrayShadow; #endif #ifdef GL_OES_texture_storage_multisample_2d_array precision lowp sampler2DMS; precision lowp sampler2DMSArray; #endif uniform sampler2D Sampler0; in vec4 vertexColor; in vec2 texCoord0; in vec2 texCoord1; in vec2 texCoord2; in vec4 normal; out vec4 fragColor; void main() { vec4 color = texture(Sampler0, texCoord0); if (color.a < vertexColor.a) { discard; } fragColor = color; } version string: 150New VGPU Shader source: #version 320 es #define texture2D texture #define attribute in #define varying out precision highp float; precision highp int; #line 0 1 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, int shape) { if (shape == 0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 3 0 in vec3 Position; in vec4 Color; in vec2 UV0; uniform mat4 ModelViewMat; uniform mat4 ProjMat; uniform mat3 IViewRotMat; uniform int FogShape; out float vertexDistance; out vec4 vertexColor; out vec2 texCoord0; void main() { gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.00000); vertexDistance = fog_distance(ModelViewMat, IViewRotMat * Position, FogShape); vertexColor = Color; texCoord0 = UV0; } New VGPU Shader conversion: #version 320 es #ifdef GL_OES_texture_storage_multisample_2d_array #extension GL_OES_texture_storage_multisample_2d_array : enable #endif #ifdef GL_EXT_texture_buffer #extension GL_EXT_texture_buffer : enable #endif #ifdef GL_EXT_texture_cube_map_array #extension GL_EXT_texture_cube_map_array : enable #endif #ifdef GL_EXT_shader_non_constant_global_initializers #extension GL_EXT_shader_non_constant_global_initializers : enable #endif precision highp float; precision lowp image2D; precision lowp image2DArray; precision lowp image3D; precision lowp imageCube; precision lowp sampler2D; precision lowp sampler3D; precision lowp sampler2DShadow; precision lowp samplerCubeShadow; precision lowp sampler2DArray; precision lowp sampler2DArrayShadow; precision lowp samplerCube; #ifdef GL_EXT_texture_buffer precision lowp samplerBuffer; precision lowp imageBuffer; #endif #ifdef GL_EXT_texture_cube_map_array precision lowp imageCubeArray; precision lowp samplerCubeArray; precision lowp samplerCubeArrayShadow; #endif #ifdef GL_OES_texture_storage_multisample_2d_array precision lowp sampler2DMS; precision lowp sampler2DMSArray; #endif #line 0 1 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, float shape) { if (shape == 0.0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 3 0 in vec3 Position; in vec4 Color; in vec2 UV0; uniform mat4 ModelViewMat; uniform mat4 ProjMat; uniform mat3 IViewRotMat; uniform float FogShape; out float vertexDistance; out vec4 vertexColor; out vec2 texCoord0; void main() { gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.00000); vertexDistance = fog_distance(ModelViewMat, IViewRotMat * Position, FogShape); vertexColor = Color; texCoord0 = UV0; } version string: 150New VGPU Shader source: #version 320 es #define texture2D texture #define attribute in #define varying out precision highp float; precision highp int; #line 0 1 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, int shape) { if (shape == 0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 3 0 uniform sampler2D Sampler0; uniform vec4 ColorModulator; uniform float FogStart; uniform float FogEnd; in float vertexDistance; in vec4 vertexColor; in vec2 texCoord0; out vec4 fragColor; void main() { vec4 color = texture(Sampler0, texCoord0) * vertexColor; fragColor = color * ColorModulator * linear_fog_fade(vertexDistance, FogStart, FogEnd); } New VGPU Shader conversion: #version 320 es #ifdef GL_OES_texture_storage_multisample_2d_array #extension GL_OES_texture_storage_multisample_2d_array : enable #endif #ifdef GL_EXT_texture_buffer #extension GL_EXT_texture_buffer : enable #endif #ifdef GL_EXT_texture_cube_map_array #extension GL_EXT_texture_cube_map_array : enable #endif #ifdef GL_EXT_shader_non_constant_global_initializers #extension GL_EXT_shader_non_constant_global_initializers : enable #endif precision highp float; precision lowp image2D; precision lowp image2DArray; precision lowp image3D; precision lowp imageCube; precision lowp sampler2D; precision lowp sampler3D; precision lowp sampler2DShadow; precision lowp samplerCubeShadow; precision lowp sampler2DArray; precision lowp sampler2DArrayShadow; precision lowp samplerCube; #ifdef GL_EXT_texture_buffer precision lowp samplerBuffer; precision lowp imageBuffer; #endif #ifdef GL_EXT_texture_cube_map_array precision lowp imageCubeArray; precision lowp samplerCubeArray; precision lowp samplerCubeArrayShadow; #endif #ifdef GL_OES_texture_storage_multisample_2d_array precision lowp sampler2DMS; precision lowp sampler2DMSArray; #endif #line 0 1 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, float shape) { if (shape == 0.0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 3 0 uniform sampler2D Sampler0; uniform vec4 ColorModulator; uniform float FogStart; uniform float FogEnd; in float vertexDistance; in vec4 vertexColor; in vec2 texCoord0; out vec4 fragColor; void main() { vec4 color = texture(Sampler0, texCoord0) * vertexColor; fragColor = color * ColorModulator * linear_fog_fade(vertexDistance, FogStart, FogEnd); } version string: 150New VGPU Shader source: #version 320 es #define texture2D texture #define attribute in #define varying out precision highp float; precision highp int; #line 0 1 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, int shape) { if (shape == 0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 3 0 in vec3 Position; in vec4 Color; in vec2 UV0; uniform mat4 ModelViewMat; uniform mat4 ProjMat; uniform mat4 TextureMat; uniform int FogShape; out float vertexDistance; out vec4 vertexColor; out vec2 texCoord0; void main() { gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.00000); vertexDistance = fog_distance(ModelViewMat, Position, FogShape); vertexColor = Color; texCoord0 = (TextureMat * vec4(UV0, 0.00000, 1.00000)).xy; } New VGPU Shader conversion: #version 320 es #ifdef GL_OES_texture_storage_multisample_2d_array #extension GL_OES_texture_storage_multisample_2d_array : enable #endif #ifdef GL_EXT_texture_buffer #extension GL_EXT_texture_buffer : enable #endif #ifdef GL_EXT_texture_cube_map_array #extension GL_EXT_texture_cube_map_array : enable #endif #ifdef GL_EXT_shader_non_constant_global_initializers #extension GL_EXT_shader_non_constant_global_initializers : enable #endif precision highp float; precision lowp image2D; precision lowp image2DArray; precision lowp image3D; precision lowp imageCube; precision lowp sampler2D; precision lowp sampler3D; precision lowp sampler2DShadow; precision lowp samplerCubeShadow; precision lowp sampler2DArray; precision lowp sampler2DArrayShadow; precision lowp samplerCube; #ifdef GL_EXT_texture_buffer precision lowp samplerBuffer; precision lowp imageBuffer; #endif #ifdef GL_EXT_texture_cube_map_array precision lowp imageCubeArray; precision lowp samplerCubeArray; precision lowp samplerCubeArrayShadow; #endif #ifdef GL_OES_texture_storage_multisample_2d_array precision lowp sampler2DMS; precision lowp sampler2DMSArray; #endif #line 0 1 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, float shape) { if (shape == 0.0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 3 0 in vec3 Position; in vec4 Color; in vec2 UV0; uniform mat4 ModelViewMat; uniform mat4 ProjMat; uniform mat4 TextureMat; uniform float FogShape; out float vertexDistance; out vec4 vertexColor; out vec2 texCoord0; void main() { gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.00000); vertexDistance = fog_distance(ModelViewMat, Position, FogShape); vertexColor = Color; texCoord0 = (TextureMat * vec4(UV0, 0.00000, 1.00000)).xy; } version string: 150New VGPU Shader source: #version 320 es #define texture2D texture #define attribute in #define varying out precision highp float; precision highp int; #line 0 1 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, int shape) { if (shape == 0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 3 0 uniform sampler2D Sampler0; uniform vec4 ColorModulator; uniform float FogStart; uniform float FogEnd; in float vertexDistance; in vec4 vertexColor; in vec2 texCoord0; out vec4 fragColor; void main() { vec4 color = texture(Sampler0, texCoord0) * vertexColor * ColorModulator; if (color.a < 0.100000) { discard; } fragColor = color * linear_fog_fade(vertexDistance, FogStart, FogEnd); } New VGPU Shader conversion: #version 320 es #ifdef GL_OES_texture_storage_multisample_2d_array #extension GL_OES_texture_storage_multisample_2d_array : enable #endif #ifdef GL_EXT_texture_buffer #extension GL_EXT_texture_buffer : enable #endif #ifdef GL_EXT_texture_cube_map_array #extension GL_EXT_texture_cube_map_array : enable #endif #ifdef GL_EXT_shader_non_constant_global_initializers #extension GL_EXT_shader_non_constant_global_initializers : enable #endif precision highp float; precision lowp image2D; precision lowp image2DArray; precision lowp image3D; precision lowp imageCube; precision lowp sampler2D; precision lowp sampler3D; precision lowp sampler2DShadow; precision lowp samplerCubeShadow; precision lowp sampler2DArray; precision lowp sampler2DArrayShadow; precision lowp samplerCube; #ifdef GL_EXT_texture_buffer precision lowp samplerBuffer; precision lowp imageBuffer; #endif #ifdef GL_EXT_texture_cube_map_array precision lowp imageCubeArray; precision lowp samplerCubeArray; precision lowp samplerCubeArrayShadow; #endif #ifdef GL_OES_texture_storage_multisample_2d_array precision lowp sampler2DMS; precision lowp sampler2DMSArray; #endif #line 0 1 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, float shape) { if (shape == 0.0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 3 0 uniform sampler2D Sampler0; uniform vec4 ColorModulator; uniform float FogStart; uniform float FogEnd; in float vertexDistance; in vec4 vertexColor; in vec2 texCoord0; out vec4 fragColor; void main() { vec4 color = texture(Sampler0, texCoord0) * vertexColor * ColorModulator; if (color.a < 0.100000) { discard; } fragColor = color * linear_fog_fade(vertexDistance, FogStart, FogEnd); } version string: 150New VGPU Shader source: #version 320 es #define texture2D texture #define attribute in #define varying out precision highp float; precision highp int; #line 0 1 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, int shape) { if (shape == 0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 3 0 in vec3 Position; in vec4 Color; in ivec2 UV2; uniform sampler2D Sampler2; uniform mat4 ModelViewMat; uniform mat4 ProjMat; uniform mat3 IViewRotMat; uniform vec4 ColorModulator; uniform int FogShape; out float vertexDistance; flat out vec4 vertexColor; void main() { gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.00000); vertexDistance = fog_distance(ModelViewMat, IViewRotMat * Position, FogShape); vertexColor = Color * ColorModulator * texelFetch(Sampler2, UV2 / 16, 0); } New VGPU Shader conversion: #version 320 es #ifdef GL_OES_texture_storage_multisample_2d_array #extension GL_OES_texture_storage_multisample_2d_array : enable #endif #ifdef GL_EXT_texture_buffer #extension GL_EXT_texture_buffer : enable #endif #ifdef GL_EXT_texture_cube_map_array #extension GL_EXT_texture_cube_map_array : enable #endif #ifdef GL_EXT_shader_non_constant_global_initializers #extension GL_EXT_shader_non_constant_global_initializers : enable #endif precision highp float; precision lowp image2D; precision lowp image2DArray; precision lowp image3D; precision lowp imageCube; precision lowp sampler2D; precision lowp sampler3D; precision lowp sampler2DShadow; precision lowp samplerCubeShadow; precision lowp sampler2DArray; precision lowp sampler2DArrayShadow; precision lowp samplerCube; #ifdef GL_EXT_texture_buffer precision lowp samplerBuffer; precision lowp imageBuffer; #endif #ifdef GL_EXT_texture_cube_map_array precision lowp imageCubeArray; precision lowp samplerCubeArray; precision lowp samplerCubeArrayShadow; #endif #ifdef GL_OES_texture_storage_multisample_2d_array precision lowp sampler2DMS; precision lowp sampler2DMSArray; #endif vec4 vgpu_texelFetch(sampler2D sampler, vec2 P, float lod){return texelFetch(sampler, ivec2(P), int(lod));} vec4 vgpu_texelFetch(sampler3D sampler, vec3 P, float lod){return texelFetch(sampler, ivec3(P), int(lod));} vec4 vgpu_texelFetch(sampler2DArray sampler, vec3 P, float lod){return texelFetch(sampler, ivec3(P), int(lod));} #ifdef GL_EXT_texture_buffer vec4 vgpu_texelFetch(samplerBuffer sampler, float P){return texelFetch(sampler, int(P));} #endif #ifdef GL_OES_texture_storage_multisample_2d_array vec4 vgpu_texelFetch(sampler2DMS sampler, vec2 P, float _sample){return texelFetch(sampler, ivec2(P), int(_sample));} vec4 vgpu_texelFetch(sampler2DMSArray sampler, vec3 P, float _sample){return texelFetch(sampler, ivec3(P), int(_sample));} #endif #line 0 1 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, float shape) { if (shape == 0.0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 3 0 in vec3 Position; in vec4 Color; in vec2 UV2; uniform sampler2D Sampler2; uniform mat4 ModelViewMat; uniform mat4 ProjMat; uniform mat3 IViewRotMat; uniform vec4 ColorModulator; uniform float FogShape; out float vertexDistance; flat out vec4 vertexColor; void main() { gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.00000); vertexDistance = fog_distance(ModelViewMat, IViewRotMat * Position, FogShape); vertexColor = Color * ColorModulator * vgpu_texelFetch(Sampler2, UV2 / 16.0, 0.0); } version string: 150New VGPU Shader source: #version 320 es #define texture2D texture #define attribute in #define varying out precision highp float; precision highp int; #line 0 1 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, int shape) { if (shape == 0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 3 0 uniform float FogStart; uniform float FogEnd; uniform vec4 FogColor; in float vertexDistance; flat in vec4 vertexColor; out vec4 fragColor; void main() { fragColor = linear_fog(vertexColor, vertexDistance, FogStart, FogEnd, FogColor); } New VGPU Shader conversion: #version 320 es #ifdef GL_OES_texture_storage_multisample_2d_array #extension GL_OES_texture_storage_multisample_2d_array : enable #endif #ifdef GL_EXT_texture_buffer #extension GL_EXT_texture_buffer : enable #endif #ifdef GL_EXT_texture_cube_map_array #extension GL_EXT_texture_cube_map_array : enable #endif #ifdef GL_EXT_shader_non_constant_global_initializers #extension GL_EXT_shader_non_constant_global_initializers : enable #endif precision highp float; precision lowp image2D; precision lowp image2DArray; precision lowp image3D; precision lowp imageCube; precision lowp sampler2D; precision lowp sampler3D; precision lowp sampler2DShadow; precision lowp samplerCubeShadow; precision lowp sampler2DArray; precision lowp sampler2DArrayShadow; precision lowp samplerCube; #ifdef GL_EXT_texture_buffer precision lowp samplerBuffer; precision lowp imageBuffer; #endif #ifdef GL_EXT_texture_cube_map_array precision lowp imageCubeArray; precision lowp samplerCubeArray; precision lowp samplerCubeArrayShadow; #endif #ifdef GL_OES_texture_storage_multisample_2d_array precision lowp sampler2DMS; precision lowp sampler2DMSArray; #endif #line 0 1 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, float shape) { if (shape == 0.0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 3 0 uniform float FogStart; uniform float FogEnd; uniform vec4 FogColor; in float vertexDistance; flat in vec4 vertexColor; out vec4 fragColor; void main() { fragColor = linear_fog(vertexColor, vertexDistance, FogStart, FogEnd, FogColor); } version string: 150New VGPU Shader source: #version 320 es #define texture2D texture #define attribute in #define varying out precision highp float; precision highp int; in vec3 Position; uniform mat4 ModelViewMat; uniform mat4 ProjMat; void main() { gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.00000); } New VGPU Shader conversion: #version 320 es #ifdef GL_OES_texture_storage_multisample_2d_array #extension GL_OES_texture_storage_multisample_2d_array : enable #endif #ifdef GL_EXT_texture_buffer #extension GL_EXT_texture_buffer : enable #endif #ifdef GL_EXT_texture_cube_map_array #extension GL_EXT_texture_cube_map_array : enable #endif #ifdef GL_EXT_shader_non_constant_global_initializers #extension GL_EXT_shader_non_constant_global_initializers : enable #endif precision highp float; precision lowp image2D; precision lowp image2DArray; precision lowp image3D; precision lowp imageCube; precision lowp sampler2D; precision lowp sampler3D; precision lowp sampler2DShadow; precision lowp samplerCubeShadow; precision lowp sampler2DArray; precision lowp sampler2DArrayShadow; precision lowp samplerCube; #ifdef GL_EXT_texture_buffer precision lowp samplerBuffer; precision lowp imageBuffer; #endif #ifdef GL_EXT_texture_cube_map_array precision lowp imageCubeArray; precision lowp samplerCubeArray; precision lowp samplerCubeArrayShadow; #endif #ifdef GL_OES_texture_storage_multisample_2d_array precision lowp sampler2DMS; precision lowp sampler2DMSArray; #endif in vec3 Position; uniform mat4 ModelViewMat; uniform mat4 ProjMat; void main() { gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.00000); } version string: 150New VGPU Shader source: #version 320 es #define texture2D texture #define attribute in #define varying out precision highp float; precision highp int; uniform vec4 ColorModulator; out vec4 fragColor; void main() { fragColor = ColorModulator; } New VGPU Shader conversion: #version 320 es #ifdef GL_OES_texture_storage_multisample_2d_array #extension GL_OES_texture_storage_multisample_2d_array : enable #endif #ifdef GL_EXT_texture_buffer #extension GL_EXT_texture_buffer : enable #endif #ifdef GL_EXT_texture_cube_map_array #extension GL_EXT_texture_cube_map_array : enable #endif #ifdef GL_EXT_shader_non_constant_global_initializers #extension GL_EXT_shader_non_constant_global_initializers : enable #endif precision highp float; precision lowp image2D; precision lowp image2DArray; precision lowp image3D; precision lowp imageCube; precision lowp sampler2D; precision lowp sampler3D; precision lowp sampler2DShadow; precision lowp samplerCubeShadow; precision lowp sampler2DArray; precision lowp sampler2DArrayShadow; precision lowp samplerCube; #ifdef GL_EXT_texture_buffer precision lowp samplerBuffer; precision lowp imageBuffer; #endif #ifdef GL_EXT_texture_cube_map_array precision lowp imageCubeArray; precision lowp samplerCubeArray; precision lowp samplerCubeArrayShadow; #endif #ifdef GL_OES_texture_storage_multisample_2d_array precision lowp sampler2DMS; precision lowp sampler2DMSArray; #endif uniform vec4 ColorModulator; out vec4 fragColor; void main() { fragColor = ColorModulator; } version string: 150New VGPU Shader source: #version 320 es #define texture2D texture #define attribute in #define varying out precision highp float; precision highp int; in vec3 Position; in vec4 Color; in vec2 UV0; uniform mat4 ModelViewMat; uniform mat4 ProjMat; out vec4 vertexColor; out vec2 texCoord0; void main() { gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.00000); vertexColor = Color; texCoord0 = UV0; } New VGPU Shader conversion: #version 320 es #ifdef GL_OES_texture_storage_multisample_2d_array #extension GL_OES_texture_storage_multisample_2d_array : enable #endif #ifdef GL_EXT_texture_buffer #extension GL_EXT_texture_buffer : enable #endif #ifdef GL_EXT_texture_cube_map_array #extension GL_EXT_texture_cube_map_array : enable #endif #ifdef GL_EXT_shader_non_constant_global_initializers #extension GL_EXT_shader_non_constant_global_initializers : enable #endif precision highp float; precision lowp image2D; precision lowp image2DArray; precision lowp image3D; precision lowp imageCube; precision lowp sampler2D; precision lowp sampler3D; precision lowp sampler2DShadow; precision lowp samplerCubeShadow; precision lowp sampler2DArray; precision lowp sampler2DArrayShadow; precision lowp samplerCube; #ifdef GL_EXT_texture_buffer precision lowp samplerBuffer; precision lowp imageBuffer; #endif #ifdef GL_EXT_texture_cube_map_array precision lowp imageCubeArray; precision lowp samplerCubeArray; precision lowp samplerCubeArrayShadow; #endif #ifdef GL_OES_texture_storage_multisample_2d_array precision lowp sampler2DMS; precision lowp sampler2DMSArray; #endif in vec3 Position; in vec4 Color; in vec2 UV0; uniform mat4 ModelViewMat; uniform mat4 ProjMat; out vec4 vertexColor; out vec2 texCoord0; void main() { gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.00000); vertexColor = Color; texCoord0 = UV0; } version string: 150New VGPU Shader source: #version 320 es #define texture2D texture #define attribute in #define varying out precision highp float; precision highp int; uniform sampler2D Sampler0; uniform vec4 ColorModulator; in vec4 vertexColor; in vec2 texCoord0; out vec4 fragColor; void main() { vec4 color = texture(Sampler0, texCoord0); if (color.a == 0.00000) { discard; } fragColor = vec4(ColorModulator.rgb * vertexColor.rgb, ColorModulator.a); } New VGPU Shader conversion: #version 320 es #ifdef GL_OES_texture_storage_multisample_2d_array #extension GL_OES_texture_storage_multisample_2d_array : enable #endif #ifdef GL_EXT_texture_buffer #extension GL_EXT_texture_buffer : enable #endif #ifdef GL_EXT_texture_cube_map_array #extension GL_EXT_texture_cube_map_array : enable #endif #ifdef GL_EXT_shader_non_constant_global_initializers #extension GL_EXT_shader_non_constant_global_initializers : enable #endif precision highp float; precision lowp image2D; precision lowp image2DArray; precision lowp image3D; precision lowp imageCube; precision lowp sampler2D; precision lowp sampler3D; precision lowp sampler2DShadow; precision lowp samplerCubeShadow; precision lowp sampler2DArray; precision lowp sampler2DArrayShadow; precision lowp samplerCube; #ifdef GL_EXT_texture_buffer precision lowp samplerBuffer; precision lowp imageBuffer; #endif #ifdef GL_EXT_texture_cube_map_array precision lowp imageCubeArray; precision lowp samplerCubeArray; precision lowp samplerCubeArrayShadow; #endif #ifdef GL_OES_texture_storage_multisample_2d_array precision lowp sampler2DMS; precision lowp sampler2DMSArray; #endif uniform sampler2D Sampler0; uniform vec4 ColorModulator; in vec4 vertexColor; in vec2 texCoord0; out vec4 fragColor; void main() { vec4 color = texture(Sampler0, texCoord0); if (color.a == 0.00000) { discard; } fragColor = vec4(ColorModulator.rgb * vertexColor.rgb, ColorModulator.a); } version string: 150New VGPU Shader source: #version 320 es #define texture2D texture #define attribute in #define varying out precision highp float; precision highp int; #line 0 1 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, int shape) { if (shape == 0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 3 0 in vec3 Position; in vec2 UV0; uniform mat4 ModelViewMat; uniform mat4 ProjMat; uniform mat4 TextureMat; uniform int FogShape; out float vertexDistance; out vec2 texCoord0; void main() { gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.00000); vertexDistance = fog_distance(ModelViewMat, Position, FogShape); texCoord0 = (TextureMat * vec4(UV0, 0.00000, 1.00000)).xy; } New VGPU Shader conversion: #version 320 es #ifdef GL_OES_texture_storage_multisample_2d_array #extension GL_OES_texture_storage_multisample_2d_array : enable #endif #ifdef GL_EXT_texture_buffer #extension GL_EXT_texture_buffer : enable #endif #ifdef GL_EXT_texture_cube_map_array #extension GL_EXT_texture_cube_map_array : enable #endif #ifdef GL_EXT_shader_non_constant_global_initializers #extension GL_EXT_shader_non_constant_global_initializers : enable #endif precision highp float; precision lowp image2D; precision lowp image2DArray; precision lowp image3D; precision lowp imageCube; precision lowp sampler2D; precision lowp sampler3D; precision lowp sampler2DShadow; precision lowp samplerCubeShadow; precision lowp sampler2DArray; precision lowp sampler2DArrayShadow; precision lowp samplerCube; #ifdef GL_EXT_texture_buffer precision lowp samplerBuffer; precision lowp imageBuffer; #endif #ifdef GL_EXT_texture_cube_map_array precision lowp imageCubeArray; precision lowp samplerCubeArray; precision lowp samplerCubeArrayShadow; #endif #ifdef GL_OES_texture_storage_multisample_2d_array precision lowp sampler2DMS; precision lowp sampler2DMSArray; #endif #line 0 1 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, float shape) { if (shape == 0.0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 3 0 in vec3 Position; in vec2 UV0; uniform mat4 ModelViewMat; uniform mat4 ProjMat; uniform mat4 TextureMat; uniform float FogShape; out float vertexDistance; out vec2 texCoord0; void main() { gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.00000); vertexDistance = fog_distance(ModelViewMat, Position, FogShape); texCoord0 = (TextureMat * vec4(UV0, 0.00000, 1.00000)).xy; } version string: 150New VGPU Shader source: #version 320 es #define texture2D texture #define attribute in #define varying out precision highp float; precision highp int; #line 0 1 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, int shape) { if (shape == 0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 3 0 uniform sampler2D Sampler0; uniform vec4 ColorModulator; uniform float FogStart; uniform float FogEnd; uniform float GlintAlpha; in float vertexDistance; in vec2 texCoord0; out vec4 fragColor; void main() { vec4 color = texture(Sampler0, texCoord0) * ColorModulator; if (color.a < 0.100000) { discard; } float fade = linear_fog_fade(vertexDistance, FogStart, FogEnd) * GlintAlpha; fragColor = vec4(color.rgb * fade, color.a); } New VGPU Shader conversion: #version 320 es #ifdef GL_OES_texture_storage_multisample_2d_array #extension GL_OES_texture_storage_multisample_2d_array : enable #endif #ifdef GL_EXT_texture_buffer #extension GL_EXT_texture_buffer : enable #endif #ifdef GL_EXT_texture_cube_map_array #extension GL_EXT_texture_cube_map_array : enable #endif #ifdef GL_EXT_shader_non_constant_global_initializers #extension GL_EXT_shader_non_constant_global_initializers : enable #endif precision highp float; precision lowp image2D; precision lowp image2DArray; precision lowp image3D; precision lowp imageCube; precision lowp sampler2D; precision lowp sampler3D; precision lowp sampler2DShadow; precision lowp samplerCubeShadow; precision lowp sampler2DArray; precision lowp sampler2DArrayShadow; precision lowp samplerCube; #ifdef GL_EXT_texture_buffer precision lowp samplerBuffer; precision lowp imageBuffer; #endif #ifdef GL_EXT_texture_cube_map_array precision lowp imageCubeArray; precision lowp samplerCubeArray; precision lowp samplerCubeArrayShadow; #endif #ifdef GL_OES_texture_storage_multisample_2d_array precision lowp sampler2DMS; precision lowp sampler2DMSArray; #endif #line 0 1 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, float shape) { if (shape == 0.0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 3 0 uniform sampler2D Sampler0; uniform vec4 ColorModulator; uniform float FogStart; uniform float FogEnd; uniform float GlintAlpha; in float vertexDistance; in vec2 texCoord0; out vec4 fragColor; void main() { vec4 color = texture(Sampler0, texCoord0) * ColorModulator; if (color.a < 0.100000) { discard; } float fade = linear_fog_fade(vertexDistance, FogStart, FogEnd) * GlintAlpha; fragColor = vec4(color.rgb * fade, color.a); } version string: 150New VGPU Shader source: #version 320 es #define texture2D texture #define attribute in #define varying out precision highp float; precision highp int; #line 0 1 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, int shape) { if (shape == 0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 3 0 in vec3 Position; in vec2 UV0; uniform mat4 ModelViewMat; uniform mat4 ProjMat; uniform mat4 TextureMat; uniform int FogShape; out float vertexDistance; out vec2 texCoord0; void main() { gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.00000); vertexDistance = fog_distance(ModelViewMat, Position, FogShape); texCoord0 = (TextureMat * vec4(UV0, 0.00000, 1.00000)).xy; } New VGPU Shader conversion: #version 320 es #ifdef GL_OES_texture_storage_multisample_2d_array #extension GL_OES_texture_storage_multisample_2d_array : enable #endif #ifdef GL_EXT_texture_buffer #extension GL_EXT_texture_buffer : enable #endif #ifdef GL_EXT_texture_cube_map_array #extension GL_EXT_texture_cube_map_array : enable #endif #ifdef GL_EXT_shader_non_constant_global_initializers #extension GL_EXT_shader_non_constant_global_initializers : enable #endif precision highp float; precision lowp image2D; precision lowp image2DArray; precision lowp image3D; precision lowp imageCube; precision lowp sampler2D; precision lowp sampler3D; precision lowp sampler2DShadow; precision lowp samplerCubeShadow; precision lowp sampler2DArray; precision lowp sampler2DArrayShadow; precision lowp samplerCube; #ifdef GL_EXT_texture_buffer precision lowp samplerBuffer; precision lowp imageBuffer; #endif #ifdef GL_EXT_texture_cube_map_array precision lowp imageCubeArray; precision lowp samplerCubeArray; precision lowp samplerCubeArrayShadow; #endif #ifdef GL_OES_texture_storage_multisample_2d_array precision lowp sampler2DMS; precision lowp sampler2DMSArray; #endif #line 0 1 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, float shape) { if (shape == 0.0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 3 0 in vec3 Position; in vec2 UV0; uniform mat4 ModelViewMat; uniform mat4 ProjMat; uniform mat4 TextureMat; uniform float FogShape; out float vertexDistance; out vec2 texCoord0; void main() { gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.00000); vertexDistance = fog_distance(ModelViewMat, Position, FogShape); texCoord0 = (TextureMat * vec4(UV0, 0.00000, 1.00000)).xy; } version string: 150New VGPU Shader source: #version 320 es #define texture2D texture #define attribute in #define varying out precision highp float; precision highp int; #line 0 1 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, int shape) { if (shape == 0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 3 0 uniform sampler2D Sampler0; uniform vec4 ColorModulator; uniform float FogStart; uniform float FogEnd; uniform float GlintAlpha; in float vertexDistance; in vec2 texCoord0; out vec4 fragColor; void main() { vec4 color = texture(Sampler0, texCoord0) * ColorModulator; if (color.a < 0.100000) { discard; } float fade = linear_fog_fade(vertexDistance, FogStart, FogEnd) * GlintAlpha; fragColor = vec4(color.rgb * fade, color.a); } New VGPU Shader conversion: #version 320 es #ifdef GL_OES_texture_storage_multisample_2d_array #extension GL_OES_texture_storage_multisample_2d_array : enable #endif #ifdef GL_EXT_texture_buffer #extension GL_EXT_texture_buffer : enable #endif #ifdef GL_EXT_texture_cube_map_array #extension GL_EXT_texture_cube_map_array : enable #endif #ifdef GL_EXT_shader_non_constant_global_initializers #extension GL_EXT_shader_non_constant_global_initializers : enable #endif precision highp float; precision lowp image2D; precision lowp image2DArray; precision lowp image3D; precision lowp imageCube; precision lowp sampler2D; precision lowp sampler3D; precision lowp sampler2DShadow; precision lowp samplerCubeShadow; precision lowp sampler2DArray; precision lowp sampler2DArrayShadow; precision lowp samplerCube; #ifdef GL_EXT_texture_buffer precision lowp samplerBuffer; precision lowp imageBuffer; #endif #ifdef GL_EXT_texture_cube_map_array precision lowp imageCubeArray; precision lowp samplerCubeArray; precision lowp samplerCubeArrayShadow; #endif #ifdef GL_OES_texture_storage_multisample_2d_array precision lowp sampler2DMS; precision lowp sampler2DMSArray; #endif #line 0 1 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, float shape) { if (shape == 0.0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 3 0 uniform sampler2D Sampler0; uniform vec4 ColorModulator; uniform float FogStart; uniform float FogEnd; uniform float GlintAlpha; in float vertexDistance; in vec2 texCoord0; out vec4 fragColor; void main() { vec4 color = texture(Sampler0, texCoord0) * ColorModulator; if (color.a < 0.100000) { discard; } float fade = linear_fog_fade(vertexDistance, FogStart, FogEnd) * GlintAlpha; fragColor = vec4(color.rgb * fade, color.a); } version string: 150New VGPU Shader source: #version 320 es #define texture2D texture #define attribute in #define varying out precision highp float; precision highp int; #line 0 1 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, int shape) { if (shape == 0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 3 0 in vec3 Position; in vec2 UV0; uniform mat4 ModelViewMat; uniform mat4 ProjMat; uniform mat3 IViewRotMat; uniform mat4 TextureMat; uniform int FogShape; out float vertexDistance; out vec2 texCoord0; void main() { gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.00000); vertexDistance = fog_distance(ModelViewMat, IViewRotMat * Position, FogShape); texCoord0 = (TextureMat * vec4(UV0, 0.00000, 1.00000)).xy; } New VGPU Shader conversion: #version 320 es #ifdef GL_OES_texture_storage_multisample_2d_array #extension GL_OES_texture_storage_multisample_2d_array : enable #endif #ifdef GL_EXT_texture_buffer #extension GL_EXT_texture_buffer : enable #endif #ifdef GL_EXT_texture_cube_map_array #extension GL_EXT_texture_cube_map_array : enable #endif #ifdef GL_EXT_shader_non_constant_global_initializers #extension GL_EXT_shader_non_constant_global_initializers : enable #endif precision highp float; precision lowp image2D; precision lowp image2DArray; precision lowp image3D; precision lowp imageCube; precision lowp sampler2D; precision lowp sampler3D; precision lowp sampler2DShadow; precision lowp samplerCubeShadow; precision lowp sampler2DArray; precision lowp sampler2DArrayShadow; precision lowp samplerCube; #ifdef GL_EXT_texture_buffer precision lowp samplerBuffer; precision lowp imageBuffer; #endif #ifdef GL_EXT_texture_cube_map_array precision lowp imageCubeArray; precision lowp samplerCubeArray; precision lowp samplerCubeArrayShadow; #endif #ifdef GL_OES_texture_storage_multisample_2d_array precision lowp sampler2DMS; precision lowp sampler2DMSArray; #endif #line 0 1 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, float shape) { if (shape == 0.0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 3 0 in vec3 Position; in vec2 UV0; uniform mat4 ModelViewMat; uniform mat4 ProjMat; uniform mat3 IViewRotMat; uniform mat4 TextureMat; uniform float FogShape; out float vertexDistance; out vec2 texCoord0; void main() { gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.00000); vertexDistance = fog_distance(ModelViewMat, IViewRotMat * Position, FogShape); texCoord0 = (TextureMat * vec4(UV0, 0.00000, 1.00000)).xy; } version string: 150New VGPU Shader source: #version 320 es #define texture2D texture #define attribute in #define varying out precision highp float; precision highp int; #line 0 1 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, int shape) { if (shape == 0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 3 0 uniform sampler2D Sampler0; uniform vec4 ColorModulator; uniform float FogStart; uniform float FogEnd; uniform float GlintAlpha; in float vertexDistance; in vec2 texCoord0; out vec4 fragColor; void main() { vec4 color = texture(Sampler0, texCoord0) * ColorModulator; if (color.a < 0.100000) { discard; } float fade = linear_fog_fade(vertexDistance, FogStart, FogEnd) * GlintAlpha; fragColor = vec4(color.rgb * fade, color.a); } New VGPU Shader conversion: #version 320 es #ifdef GL_OES_texture_storage_multisample_2d_array #extension GL_OES_texture_storage_multisample_2d_array : enable #endif #ifdef GL_EXT_texture_buffer #extension GL_EXT_texture_buffer : enable #endif #ifdef GL_EXT_texture_cube_map_array #extension GL_EXT_texture_cube_map_array : enable #endif #ifdef GL_EXT_shader_non_constant_global_initializers #extension GL_EXT_shader_non_constant_global_initializers : enable #endif precision highp float; precision lowp image2D; precision lowp image2DArray; precision lowp image3D; precision lowp imageCube; precision lowp sampler2D; precision lowp sampler3D; precision lowp sampler2DShadow; precision lowp samplerCubeShadow; precision lowp sampler2DArray; precision lowp sampler2DArrayShadow; precision lowp samplerCube; #ifdef GL_EXT_texture_buffer precision lowp samplerBuffer; precision lowp imageBuffer; #endif #ifdef GL_EXT_texture_cube_map_array precision lowp imageCubeArray; precision lowp samplerCubeArray; precision lowp samplerCubeArrayShadow; #endif #ifdef GL_OES_texture_storage_multisample_2d_array precision lowp sampler2DMS; precision lowp sampler2DMSArray; #endif #line 0 1 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, float shape) { if (shape == 0.0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 3 0 uniform sampler2D Sampler0; uniform vec4 ColorModulator; uniform float FogStart; uniform float FogEnd; uniform float GlintAlpha; in float vertexDistance; in vec2 texCoord0; out vec4 fragColor; void main() { vec4 color = texture(Sampler0, texCoord0) * ColorModulator; if (color.a < 0.100000) { discard; } float fade = linear_fog_fade(vertexDistance, FogStart, FogEnd) * GlintAlpha; fragColor = vec4(color.rgb * fade, color.a); } version string: 150New VGPU Shader source: #version 320 es #define texture2D texture #define attribute in #define varying out precision highp float; precision highp int; #line 0 1 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, int shape) { if (shape == 0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 3 0 in vec3 Position; in vec2 UV0; uniform mat4 ModelViewMat; uniform mat4 ProjMat; uniform mat3 IViewRotMat; uniform mat4 TextureMat; uniform int FogShape; out float vertexDistance; out vec2 texCoord0; void main() { gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.00000); vertexDistance = fog_distance(ModelViewMat, IViewRotMat * Position, FogShape); texCoord0 = (TextureMat * vec4(UV0, 0.00000, 1.00000)).xy; } New VGPU Shader conversion: #version 320 es #ifdef GL_OES_texture_storage_multisample_2d_array #extension GL_OES_texture_storage_multisample_2d_array : enable #endif #ifdef GL_EXT_texture_buffer #extension GL_EXT_texture_buffer : enable #endif #ifdef GL_EXT_texture_cube_map_array #extension GL_EXT_texture_cube_map_array : enable #endif #ifdef GL_EXT_shader_non_constant_global_initializers #extension GL_EXT_shader_non_constant_global_initializers : enable #endif precision highp float; precision lowp image2D; precision lowp image2DArray; precision lowp image3D; precision lowp imageCube; precision lowp sampler2D; precision lowp sampler3D; precision lowp sampler2DShadow; precision lowp samplerCubeShadow; precision lowp sampler2DArray; precision lowp sampler2DArrayShadow; precision lowp samplerCube; #ifdef GL_EXT_texture_buffer precision lowp samplerBuffer; precision lowp imageBuffer; #endif #ifdef GL_EXT_texture_cube_map_array precision lowp imageCubeArray; precision lowp samplerCubeArray; precision lowp samplerCubeArrayShadow; #endif #ifdef GL_OES_texture_storage_multisample_2d_array precision lowp sampler2DMS; precision lowp sampler2DMSArray; #endif #line 0 1 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, float shape) { if (shape == 0.0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 3 0 in vec3 Position; in vec2 UV0; uniform mat4 ModelViewMat; uniform mat4 ProjMat; uniform mat3 IViewRotMat; uniform mat4 TextureMat; uniform float FogShape; out float vertexDistance; out vec2 texCoord0; void main() { gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.00000); vertexDistance = fog_distance(ModelViewMat, IViewRotMat * Position, FogShape); texCoord0 = (TextureMat * vec4(UV0, 0.00000, 1.00000)).xy; } version string: 150New VGPU Shader source: #version 320 es #define texture2D texture #define attribute in #define varying out precision highp float; precision highp int; #line 0 1 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, int shape) { if (shape == 0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 3 0 uniform sampler2D Sampler0; uniform vec4 ColorModulator; uniform float FogStart; uniform float FogEnd; uniform float GlintAlpha; in float vertexDistance; in vec2 texCoord0; out vec4 fragColor; void main() { vec4 color = texture(Sampler0, texCoord0) * ColorModulator; if (color.a < 0.100000) { discard; } float fade = linear_fog_fade(vertexDistance, FogStart, FogEnd) * GlintAlpha; fragColor = vec4(color.rgb * fade, color.a); } New VGPU Shader conversion: #version 320 es #ifdef GL_OES_texture_storage_multisample_2d_array #extension GL_OES_texture_storage_multisample_2d_array : enable #endif #ifdef GL_EXT_texture_buffer #extension GL_EXT_texture_buffer : enable #endif #ifdef GL_EXT_texture_cube_map_array #extension GL_EXT_texture_cube_map_array : enable #endif #ifdef GL_EXT_shader_non_constant_global_initializers #extension GL_EXT_shader_non_constant_global_initializers : enable #endif precision highp float; precision lowp image2D; precision lowp image2DArray; precision lowp image3D; precision lowp imageCube; precision lowp sampler2D; precision lowp sampler3D; precision lowp sampler2DShadow; precision lowp samplerCubeShadow; precision lowp sampler2DArray; precision lowp sampler2DArrayShadow; precision lowp samplerCube; #ifdef GL_EXT_texture_buffer precision lowp samplerBuffer; precision lowp imageBuffer; #endif #ifdef GL_EXT_texture_cube_map_array precision lowp imageCubeArray; precision lowp samplerCubeArray; precision lowp samplerCubeArrayShadow; #endif #ifdef GL_OES_texture_storage_multisample_2d_array precision lowp sampler2DMS; precision lowp sampler2DMSArray; #endif #line 0 1 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, float shape) { if (shape == 0.0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 3 0 uniform sampler2D Sampler0; uniform vec4 ColorModulator; uniform float FogStart; uniform float FogEnd; uniform float GlintAlpha; in float vertexDistance; in vec2 texCoord0; out vec4 fragColor; void main() { vec4 color = texture(Sampler0, texCoord0) * ColorModulator; if (color.a < 0.100000) { discard; } float fade = linear_fog_fade(vertexDistance, FogStart, FogEnd) * GlintAlpha; fragColor = vec4(color.rgb * fade, color.a); } version string: 150New VGPU Shader source: #version 320 es #define texture2D texture #define attribute in #define varying out precision highp float; precision highp int; #line 0 1 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, int shape) { if (shape == 0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 3 0 in vec3 Position; in vec2 UV0; uniform mat4 ModelViewMat; uniform mat4 ProjMat; uniform mat3 IViewRotMat; uniform mat4 TextureMat; uniform int FogShape; out float vertexDistance; out vec2 texCoord0; void main() { gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.00000); vertexDistance = fog_distance(ModelViewMat, IViewRotMat * Position, FogShape); texCoord0 = (TextureMat * vec4(UV0, 0.00000, 1.00000)).xy; } New VGPU Shader conversion: #version 320 es #ifdef GL_OES_texture_storage_multisample_2d_array #extension GL_OES_texture_storage_multisample_2d_array : enable #endif #ifdef GL_EXT_texture_buffer #extension GL_EXT_texture_buffer : enable #endif #ifdef GL_EXT_texture_cube_map_array #extension GL_EXT_texture_cube_map_array : enable #endif #ifdef GL_EXT_shader_non_constant_global_initializers #extension GL_EXT_shader_non_constant_global_initializers : enable #endif precision highp float; precision lowp image2D; precision lowp image2DArray; precision lowp image3D; precision lowp imageCube; precision lowp sampler2D; precision lowp sampler3D; precision lowp sampler2DShadow; precision lowp samplerCubeShadow; precision lowp sampler2DArray; precision lowp sampler2DArrayShadow; precision lowp samplerCube; #ifdef GL_EXT_texture_buffer precision lowp samplerBuffer; precision lowp imageBuffer; #endif #ifdef GL_EXT_texture_cube_map_array precision lowp imageCubeArray; precision lowp samplerCubeArray; precision lowp samplerCubeArrayShadow; #endif #ifdef GL_OES_texture_storage_multisample_2d_array precision lowp sampler2DMS; precision lowp sampler2DMSArray; #endif #line 0 1 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, float shape) { if (shape == 0.0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 3 0 in vec3 Position; in vec2 UV0; uniform mat4 ModelViewMat; uniform mat4 ProjMat; uniform mat3 IViewRotMat; uniform mat4 TextureMat; uniform float FogShape; out float vertexDistance; out vec2 texCoord0; void main() { gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.00000); vertexDistance = fog_distance(ModelViewMat, IViewRotMat * Position, FogShape); texCoord0 = (TextureMat * vec4(UV0, 0.00000, 1.00000)).xy; } version string: 150New VGPU Shader source: #version 320 es #define texture2D texture #define attribute in #define varying out precision highp float; precision highp int; #line 0 1 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, int shape) { if (shape == 0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 3 0 uniform sampler2D Sampler0; uniform vec4 ColorModulator; uniform float FogStart; uniform float FogEnd; uniform float GlintAlpha; in float vertexDistance; in vec2 texCoord0; out vec4 fragColor; void main() { vec4 color = texture(Sampler0, texCoord0) * ColorModulator; if (color.a < 0.100000) { discard; } float fade = linear_fog_fade(vertexDistance, FogStart, FogEnd) * GlintAlpha; fragColor = vec4(color.rgb * fade, color.a); } New VGPU Shader conversion: #version 320 es #ifdef GL_OES_texture_storage_multisample_2d_array #extension GL_OES_texture_storage_multisample_2d_array : enable #endif #ifdef GL_EXT_texture_buffer #extension GL_EXT_texture_buffer : enable #endif #ifdef GL_EXT_texture_cube_map_array #extension GL_EXT_texture_cube_map_array : enable #endif #ifdef GL_EXT_shader_non_constant_global_initializers #extension GL_EXT_shader_non_constant_global_initializers : enable #endif precision highp float; precision lowp image2D; precision lowp image2DArray; precision lowp image3D; precision lowp imageCube; precision lowp sampler2D; precision lowp sampler3D; precision lowp sampler2DShadow; precision lowp samplerCubeShadow; precision lowp sampler2DArray; precision lowp sampler2DArrayShadow; precision lowp samplerCube; #ifdef GL_EXT_texture_buffer precision lowp samplerBuffer; precision lowp imageBuffer; #endif #ifdef GL_EXT_texture_cube_map_array precision lowp imageCubeArray; precision lowp samplerCubeArray; precision lowp samplerCubeArrayShadow; #endif #ifdef GL_OES_texture_storage_multisample_2d_array precision lowp sampler2DMS; precision lowp sampler2DMSArray; #endif #line 0 1 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, float shape) { if (shape == 0.0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 3 0 uniform sampler2D Sampler0; uniform vec4 ColorModulator; uniform float FogStart; uniform float FogEnd; uniform float GlintAlpha; in float vertexDistance; in vec2 texCoord0; out vec4 fragColor; void main() { vec4 color = texture(Sampler0, texCoord0) * ColorModulator; if (color.a < 0.100000) { discard; } float fade = linear_fog_fade(vertexDistance, FogStart, FogEnd) * GlintAlpha; fragColor = vec4(color.rgb * fade, color.a); } version string: 150New VGPU Shader source: #version 320 es #define texture2D texture #define attribute in #define varying out precision highp float; precision highp int; #line 0 1 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, int shape) { if (shape == 0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 3 0 in vec3 Position; in vec2 UV0; uniform mat4 ModelViewMat; uniform mat4 ProjMat; uniform mat3 IViewRotMat; uniform mat4 TextureMat; uniform int FogShape; out float vertexDistance; out vec2 texCoord0; void main() { gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.00000); vertexDistance = fog_distance(ModelViewMat, IViewRotMat * Position, FogShape); texCoord0 = (TextureMat * vec4(UV0, 0.00000, 1.00000)).xy; } New VGPU Shader conversion: #version 320 es #ifdef GL_OES_texture_storage_multisample_2d_array #extension GL_OES_texture_storage_multisample_2d_array : enable #endif #ifdef GL_EXT_texture_buffer #extension GL_EXT_texture_buffer : enable #endif #ifdef GL_EXT_texture_cube_map_array #extension GL_EXT_texture_cube_map_array : enable #endif #ifdef GL_EXT_shader_non_constant_global_initializers #extension GL_EXT_shader_non_constant_global_initializers : enable #endif precision highp float; precision lowp image2D; precision lowp image2DArray; precision lowp image3D; precision lowp imageCube; precision lowp sampler2D; precision lowp sampler3D; precision lowp sampler2DShadow; precision lowp samplerCubeShadow; precision lowp sampler2DArray; precision lowp sampler2DArrayShadow; precision lowp samplerCube; #ifdef GL_EXT_texture_buffer precision lowp samplerBuffer; precision lowp imageBuffer; #endif #ifdef GL_EXT_texture_cube_map_array precision lowp imageCubeArray; precision lowp samplerCubeArray; precision lowp samplerCubeArrayShadow; #endif #ifdef GL_OES_texture_storage_multisample_2d_array precision lowp sampler2DMS; precision lowp sampler2DMSArray; #endif #line 0 1 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, float shape) { if (shape == 0.0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 3 0 in vec3 Position; in vec2 UV0; uniform mat4 ModelViewMat; uniform mat4 ProjMat; uniform mat3 IViewRotMat; uniform mat4 TextureMat; uniform float FogShape; out float vertexDistance; out vec2 texCoord0; void main() { gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.00000); vertexDistance = fog_distance(ModelViewMat, IViewRotMat * Position, FogShape); texCoord0 = (TextureMat * vec4(UV0, 0.00000, 1.00000)).xy; } version string: 150New VGPU Shader source: #version 320 es #define texture2D texture #define attribute in #define varying out precision highp float; precision highp int; #line 0 1 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, int shape) { if (shape == 0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 3 0 uniform sampler2D Sampler0; uniform vec4 ColorModulator; uniform float FogStart; uniform float FogEnd; uniform float GlintAlpha; in float vertexDistance; in vec2 texCoord0; out vec4 fragColor; void main() { vec4 color = texture(Sampler0, texCoord0) * ColorModulator; if (color.a < 0.100000) { discard; } float fade = linear_fog_fade(vertexDistance, FogStart, FogEnd) * GlintAlpha; fragColor = vec4(color.rgb * fade, color.a); } New VGPU Shader conversion: #version 320 es #ifdef GL_OES_texture_storage_multisample_2d_array #extension GL_OES_texture_storage_multisample_2d_array : enable #endif #ifdef GL_EXT_texture_buffer #extension GL_EXT_texture_buffer : enable #endif #ifdef GL_EXT_texture_cube_map_array #extension GL_EXT_texture_cube_map_array : enable #endif #ifdef GL_EXT_shader_non_constant_global_initializers #extension GL_EXT_shader_non_constant_global_initializers : enable #endif precision highp float; precision lowp image2D; precision lowp image2DArray; precision lowp image3D; precision lowp imageCube; precision lowp sampler2D; precision lowp sampler3D; precision lowp sampler2DShadow; precision lowp samplerCubeShadow; precision lowp sampler2DArray; precision lowp sampler2DArrayShadow; precision lowp samplerCube; #ifdef GL_EXT_texture_buffer precision lowp samplerBuffer; precision lowp imageBuffer; #endif #ifdef GL_EXT_texture_cube_map_array precision lowp imageCubeArray; precision lowp samplerCubeArray; precision lowp samplerCubeArrayShadow; #endif #ifdef GL_OES_texture_storage_multisample_2d_array precision lowp sampler2DMS; precision lowp sampler2DMSArray; #endif #line 0 1 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, float shape) { if (shape == 0.0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 3 0 uniform sampler2D Sampler0; uniform vec4 ColorModulator; uniform float FogStart; uniform float FogEnd; uniform float GlintAlpha; in float vertexDistance; in vec2 texCoord0; out vec4 fragColor; void main() { vec4 color = texture(Sampler0, texCoord0) * ColorModulator; if (color.a < 0.100000) { discard; } float fade = linear_fog_fade(vertexDistance, FogStart, FogEnd) * GlintAlpha; fragColor = vec4(color.rgb * fade, color.a); } version string: 150New VGPU Shader source: #version 320 es #define texture2D texture #define attribute in #define varying out precision highp float; precision highp int; #line 0 1 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, int shape) { if (shape == 0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 3 0 in vec3 Position; in vec2 UV0; uniform mat4 ModelViewMat; uniform mat4 ProjMat; uniform mat3 IViewRotMat; uniform mat4 TextureMat; uniform int FogShape; out float vertexDistance; out vec2 texCoord0; void main() { gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.00000); vertexDistance = fog_distance(ModelViewMat, IViewRotMat * Position, FogShape); texCoord0 = (TextureMat * vec4(UV0, 0.00000, 1.00000)).xy; } New VGPU Shader conversion: #version 320 es #ifdef GL_OES_texture_storage_multisample_2d_array #extension GL_OES_texture_storage_multisample_2d_array : enable #endif #ifdef GL_EXT_texture_buffer #extension GL_EXT_texture_buffer : enable #endif #ifdef GL_EXT_texture_cube_map_array #extension GL_EXT_texture_cube_map_array : enable #endif #ifdef GL_EXT_shader_non_constant_global_initializers #extension GL_EXT_shader_non_constant_global_initializers : enable #endif precision highp float; precision lowp image2D; precision lowp image2DArray; precision lowp image3D; precision lowp imageCube; precision lowp sampler2D; precision lowp sampler3D; precision lowp sampler2DShadow; precision lowp samplerCubeShadow; precision lowp sampler2DArray; precision lowp sampler2DArrayShadow; precision lowp samplerCube; #ifdef GL_EXT_texture_buffer precision lowp samplerBuffer; precision lowp imageBuffer; #endif #ifdef GL_EXT_texture_cube_map_array precision lowp imageCubeArray; precision lowp samplerCubeArray; precision lowp samplerCubeArrayShadow; #endif #ifdef GL_OES_texture_storage_multisample_2d_array precision lowp sampler2DMS; precision lowp sampler2DMSArray; #endif #line 0 1 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, float shape) { if (shape == 0.0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 3 0 in vec3 Position; in vec2 UV0; uniform mat4 ModelViewMat; uniform mat4 ProjMat; uniform mat3 IViewRotMat; uniform mat4 TextureMat; uniform float FogShape; out float vertexDistance; out vec2 texCoord0; void main() { gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.00000); vertexDistance = fog_distance(ModelViewMat, IViewRotMat * Position, FogShape); texCoord0 = (TextureMat * vec4(UV0, 0.00000, 1.00000)).xy; } version string: 150New VGPU Shader source: #version 320 es #define texture2D texture #define attribute in #define varying out precision highp float; precision highp int; #line 0 1 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, int shape) { if (shape == 0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 3 0 uniform sampler2D Sampler0; uniform vec4 ColorModulator; uniform float FogStart; uniform float FogEnd; uniform float GlintAlpha; in float vertexDistance; in vec2 texCoord0; out vec4 fragColor; void main() { vec4 color = texture(Sampler0, texCoord0) * ColorModulator; if (color.a < 0.100000) { discard; } float fade = linear_fog_fade(vertexDistance, FogStart, FogEnd) * GlintAlpha; fragColor = vec4(color.rgb * fade, color.a); } New VGPU Shader conversion: #version 320 es #ifdef GL_OES_texture_storage_multisample_2d_array #extension GL_OES_texture_storage_multisample_2d_array : enable #endif #ifdef GL_EXT_texture_buffer #extension GL_EXT_texture_buffer : enable #endif #ifdef GL_EXT_texture_cube_map_array #extension GL_EXT_texture_cube_map_array : enable #endif #ifdef GL_EXT_shader_non_constant_global_initializers #extension GL_EXT_shader_non_constant_global_initializers : enable #endif precision highp float; precision lowp image2D; precision lowp image2DArray; precision lowp image3D; precision lowp imageCube; precision lowp sampler2D; precision lowp sampler3D; precision lowp sampler2DShadow; precision lowp samplerCubeShadow; precision lowp sampler2DArray; precision lowp sampler2DArrayShadow; precision lowp samplerCube; #ifdef GL_EXT_texture_buffer precision lowp samplerBuffer; precision lowp imageBuffer; #endif #ifdef GL_EXT_texture_cube_map_array precision lowp imageCubeArray; precision lowp samplerCubeArray; precision lowp samplerCubeArrayShadow; #endif #ifdef GL_OES_texture_storage_multisample_2d_array precision lowp sampler2DMS; precision lowp sampler2DMSArray; #endif #line 0 1 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, float shape) { if (shape == 0.0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 3 0 uniform sampler2D Sampler0; uniform vec4 ColorModulator; uniform float FogStart; uniform float FogEnd; uniform float GlintAlpha; in float vertexDistance; in vec2 texCoord0; out vec4 fragColor; void main() { vec4 color = texture(Sampler0, texCoord0) * ColorModulator; if (color.a < 0.100000) { discard; } float fade = linear_fog_fade(vertexDistance, FogStart, FogEnd) * GlintAlpha; fragColor = vec4(color.rgb * fade, color.a); } version string: 150New VGPU Shader source: #version 320 es #define texture2D texture #define attribute in #define varying out precision highp float; precision highp int; #line 0 1 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, int shape) { if (shape == 0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 3 0 in vec3 Position; in vec4 Color; in vec2 UV0; in ivec2 UV2; uniform sampler2D Sampler2; uniform mat4 ModelViewMat; uniform mat4 ProjMat; uniform mat3 IViewRotMat; uniform int FogShape; out float vertexDistance; out vec4 vertexColor; out vec2 texCoord0; void main() { gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.00000); vertexDistance = fog_distance(ModelViewMat, IViewRotMat * Position, FogShape); vertexColor = Color * texelFetch(Sampler2, UV2 / 16, 0); texCoord0 = UV0; } New VGPU Shader conversion: #version 320 es #ifdef GL_OES_texture_storage_multisample_2d_array #extension GL_OES_texture_storage_multisample_2d_array : enable #endif #ifdef GL_EXT_texture_buffer #extension GL_EXT_texture_buffer : enable #endif #ifdef GL_EXT_texture_cube_map_array #extension GL_EXT_texture_cube_map_array : enable #endif #ifdef GL_EXT_shader_non_constant_global_initializers #extension GL_EXT_shader_non_constant_global_initializers : enable #endif precision highp float; precision lowp image2D; precision lowp image2DArray; precision lowp image3D; precision lowp imageCube; precision lowp sampler2D; precision lowp sampler3D; precision lowp sampler2DShadow; precision lowp samplerCubeShadow; precision lowp sampler2DArray; precision lowp sampler2DArrayShadow; precision lowp samplerCube; #ifdef GL_EXT_texture_buffer precision lowp samplerBuffer; precision lowp imageBuffer; #endif #ifdef GL_EXT_texture_cube_map_array precision lowp imageCubeArray; precision lowp samplerCubeArray; precision lowp samplerCubeArrayShadow; #endif #ifdef GL_OES_texture_storage_multisample_2d_array precision lowp sampler2DMS; precision lowp sampler2DMSArray; #endif vec4 vgpu_texelFetch(sampler2D sampler, vec2 P, float lod){return texelFetch(sampler, ivec2(P), int(lod));} vec4 vgpu_texelFetch(sampler3D sampler, vec3 P, float lod){return texelFetch(sampler, ivec3(P), int(lod));} vec4 vgpu_texelFetch(sampler2DArray sampler, vec3 P, float lod){return texelFetch(sampler, ivec3(P), int(lod));} #ifdef GL_EXT_texture_buffer vec4 vgpu_texelFetch(samplerBuffer sampler, float P){return texelFetch(sampler, int(P));} #endif #ifdef GL_OES_texture_storage_multisample_2d_array vec4 vgpu_texelFetch(sampler2DMS sampler, vec2 P, float _sample){return texelFetch(sampler, ivec2(P), int(_sample));} vec4 vgpu_texelFetch(sampler2DMSArray sampler, vec3 P, float _sample){return texelFetch(sampler, ivec3(P), int(_sample));} #endif #line 0 1 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, float shape) { if (shape == 0.0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 3 0 in vec3 Position; in vec4 Color; in vec2 UV0; in vec2 UV2; uniform sampler2D Sampler2; uniform mat4 ModelViewMat; uniform mat4 ProjMat; uniform mat3 IViewRotMat; uniform float FogShape; out float vertexDistance; out vec4 vertexColor; out vec2 texCoord0; void main() { gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.00000); vertexDistance = fog_distance(ModelViewMat, IViewRotMat * Position, FogShape); vertexColor = Color * vgpu_texelFetch(Sampler2, UV2 / 16.0, 0.0); texCoord0 = UV0; } version string: 150New VGPU Shader source: #version 320 es #define texture2D texture #define attribute in #define varying out precision highp float; precision highp int; #line 0 1 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, int shape) { if (shape == 0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 3 0 uniform sampler2D Sampler0; uniform vec4 ColorModulator; uniform float FogStart; uniform float FogEnd; uniform vec4 FogColor; in float vertexDistance; in vec4 vertexColor; in vec2 texCoord0; out vec4 fragColor; void main() { vec4 color = texture(Sampler0, texCoord0) * vertexColor * ColorModulator; if (color.a < 0.100000) { discard; } fragColor = linear_fog(color, vertexDistance, FogStart, FogEnd, FogColor); } New VGPU Shader conversion: #version 320 es #ifdef GL_OES_texture_storage_multisample_2d_array #extension GL_OES_texture_storage_multisample_2d_array : enable #endif #ifdef GL_EXT_texture_buffer #extension GL_EXT_texture_buffer : enable #endif #ifdef GL_EXT_texture_cube_map_array #extension GL_EXT_texture_cube_map_array : enable #endif #ifdef GL_EXT_shader_non_constant_global_initializers #extension GL_EXT_shader_non_constant_global_initializers : enable #endif precision highp float; precision lowp image2D; precision lowp image2DArray; precision lowp image3D; precision lowp imageCube; precision lowp sampler2D; precision lowp sampler3D; precision lowp sampler2DShadow; precision lowp samplerCubeShadow; precision lowp sampler2DArray; precision lowp sampler2DArrayShadow; precision lowp samplerCube; #ifdef GL_EXT_texture_buffer precision lowp samplerBuffer; precision lowp imageBuffer; #endif #ifdef GL_EXT_texture_cube_map_array precision lowp imageCubeArray; precision lowp samplerCubeArray; precision lowp samplerCubeArrayShadow; #endif #ifdef GL_OES_texture_storage_multisample_2d_array precision lowp sampler2DMS; precision lowp sampler2DMSArray; #endif #line 0 1 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, float shape) { if (shape == 0.0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 3 0 uniform sampler2D Sampler0; uniform vec4 ColorModulator; uniform float FogStart; uniform float FogEnd; uniform vec4 FogColor; in float vertexDistance; in vec4 vertexColor; in vec2 texCoord0; out vec4 fragColor; void main() { vec4 color = texture(Sampler0, texCoord0) * vertexColor * ColorModulator; if (color.a < 0.100000) { discard; } fragColor = linear_fog(color, vertexDistance, FogStart, FogEnd, FogColor); } version string: 150New VGPU Shader source: #version 320 es #define texture2D texture #define attribute in #define varying out precision highp float; precision highp int; #line 0 1 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, int shape) { if (shape == 0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 3 0 in vec3 Position; in vec4 Color; in ivec2 UV2; uniform sampler2D Sampler2; uniform mat4 ModelViewMat; uniform mat4 ProjMat; uniform mat3 IViewRotMat; uniform int FogShape; out float vertexDistance; out vec4 vertexColor; void main() { gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.00000); vertexDistance = fog_distance(ModelViewMat, IViewRotMat * Position, FogShape); vertexColor = Color * texelFetch(Sampler2, UV2 / 16, 0); } New VGPU Shader conversion: #version 320 es #ifdef GL_OES_texture_storage_multisample_2d_array #extension GL_OES_texture_storage_multisample_2d_array : enable #endif #ifdef GL_EXT_texture_buffer #extension GL_EXT_texture_buffer : enable #endif #ifdef GL_EXT_texture_cube_map_array #extension GL_EXT_texture_cube_map_array : enable #endif #ifdef GL_EXT_shader_non_constant_global_initializers #extension GL_EXT_shader_non_constant_global_initializers : enable #endif precision highp float; precision lowp image2D; precision lowp image2DArray; precision lowp image3D; precision lowp imageCube; precision lowp sampler2D; precision lowp sampler3D; precision lowp sampler2DShadow; precision lowp samplerCubeShadow; precision lowp sampler2DArray; precision lowp sampler2DArrayShadow; precision lowp samplerCube; #ifdef GL_EXT_texture_buffer precision lowp samplerBuffer; precision lowp imageBuffer; #endif #ifdef GL_EXT_texture_cube_map_array precision lowp imageCubeArray; precision lowp samplerCubeArray; precision lowp samplerCubeArrayShadow; #endif #ifdef GL_OES_texture_storage_multisample_2d_array precision lowp sampler2DMS; precision lowp sampler2DMSArray; #endif vec4 vgpu_texelFetch(sampler2D sampler, vec2 P, float lod){return texelFetch(sampler, ivec2(P), int(lod));} vec4 vgpu_texelFetch(sampler3D sampler, vec3 P, float lod){return texelFetch(sampler, ivec3(P), int(lod));} vec4 vgpu_texelFetch(sampler2DArray sampler, vec3 P, float lod){return texelFetch(sampler, ivec3(P), int(lod));} #ifdef GL_EXT_texture_buffer vec4 vgpu_texelFetch(samplerBuffer sampler, float P){return texelFetch(sampler, int(P));} #endif #ifdef GL_OES_texture_storage_multisample_2d_array vec4 vgpu_texelFetch(sampler2DMS sampler, vec2 P, float _sample){return texelFetch(sampler, ivec2(P), int(_sample));} vec4 vgpu_texelFetch(sampler2DMSArray sampler, vec3 P, float _sample){return texelFetch(sampler, ivec3(P), int(_sample));} #endif #line 0 1 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, float shape) { if (shape == 0.0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 3 0 in vec3 Position; in vec4 Color; in vec2 UV2; uniform sampler2D Sampler2; uniform mat4 ModelViewMat; uniform mat4 ProjMat; uniform mat3 IViewRotMat; uniform float FogShape; out float vertexDistance; out vec4 vertexColor; void main() { gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.00000); vertexDistance = fog_distance(ModelViewMat, IViewRotMat * Position, FogShape); vertexColor = Color * vgpu_texelFetch(Sampler2, UV2 / 16.0, 0.0); } version string: 150New VGPU Shader source: #version 320 es #define texture2D texture #define attribute in #define varying out precision highp float; precision highp int; #line 0 1 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, int shape) { if (shape == 0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 3 0 uniform sampler2D Sampler0; uniform vec4 ColorModulator; uniform float FogStart; uniform float FogEnd; uniform vec4 FogColor; in float vertexDistance; in vec4 vertexColor; in vec2 texCoord0; out vec4 fragColor; void main() { vec4 color = vertexColor * ColorModulator; if (color.a < 0.100000) { discard; } fragColor = linear_fog(color, vertexDistance, FogStart, FogEnd, FogColor); } New VGPU Shader conversion: #version 320 es #ifdef GL_OES_texture_storage_multisample_2d_array #extension GL_OES_texture_storage_multisample_2d_array : enable #endif #ifdef GL_EXT_texture_buffer #extension GL_EXT_texture_buffer : enable #endif #ifdef GL_EXT_texture_cube_map_array #extension GL_EXT_texture_cube_map_array : enable #endif #ifdef GL_EXT_shader_non_constant_global_initializers #extension GL_EXT_shader_non_constant_global_initializers : enable #endif precision highp float; precision lowp image2D; precision lowp image2DArray; precision lowp image3D; precision lowp imageCube; precision lowp sampler2D; precision lowp sampler3D; precision lowp sampler2DShadow; precision lowp samplerCubeShadow; precision lowp sampler2DArray; precision lowp sampler2DArrayShadow; precision lowp samplerCube; #ifdef GL_EXT_texture_buffer precision lowp samplerBuffer; precision lowp imageBuffer; #endif #ifdef GL_EXT_texture_cube_map_array precision lowp imageCubeArray; precision lowp samplerCubeArray; precision lowp samplerCubeArrayShadow; #endif #ifdef GL_OES_texture_storage_multisample_2d_array precision lowp sampler2DMS; precision lowp sampler2DMSArray; #endif #line 0 1 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, float shape) { if (shape == 0.0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 3 0 uniform sampler2D Sampler0; uniform vec4 ColorModulator; uniform float FogStart; uniform float FogEnd; uniform vec4 FogColor; in float vertexDistance; in vec4 vertexColor; in vec2 texCoord0; out vec4 fragColor; void main() { vec4 color = vertexColor * ColorModulator; if (color.a < 0.100000) { discard; } fragColor = linear_fog(color, vertexDistance, FogStart, FogEnd, FogColor); } version string: 150New VGPU Shader source: #version 320 es #define texture2D texture #define attribute in #define varying out precision highp float; precision highp int; #line 0 1 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, int shape) { if (shape == 0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 3 0 in vec3 Position; in vec4 Color; in vec2 UV0; in ivec2 UV2; uniform sampler2D Sampler2; uniform mat4 ModelViewMat; uniform mat4 ProjMat; uniform mat3 IViewRotMat; uniform int FogShape; out float vertexDistance; out vec4 vertexColor; out vec2 texCoord0; void main() { gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.00000); vertexDistance = fog_distance(ModelViewMat, IViewRotMat * Position, FogShape); vertexColor = Color * texelFetch(Sampler2, UV2 / 16, 0); texCoord0 = UV0; } New VGPU Shader conversion: #version 320 es #ifdef GL_OES_texture_storage_multisample_2d_array #extension GL_OES_texture_storage_multisample_2d_array : enable #endif #ifdef GL_EXT_texture_buffer #extension GL_EXT_texture_buffer : enable #endif #ifdef GL_EXT_texture_cube_map_array #extension GL_EXT_texture_cube_map_array : enable #endif #ifdef GL_EXT_shader_non_constant_global_initializers #extension GL_EXT_shader_non_constant_global_initializers : enable #endif precision highp float; precision lowp image2D; precision lowp image2DArray; precision lowp image3D; precision lowp imageCube; precision lowp sampler2D; precision lowp sampler3D; precision lowp sampler2DShadow; precision lowp samplerCubeShadow; precision lowp sampler2DArray; precision lowp sampler2DArrayShadow; precision lowp samplerCube; #ifdef GL_EXT_texture_buffer precision lowp samplerBuffer; precision lowp imageBuffer; #endif #ifdef GL_EXT_texture_cube_map_array precision lowp imageCubeArray; precision lowp samplerCubeArray; precision lowp samplerCubeArrayShadow; #endif #ifdef GL_OES_texture_storage_multisample_2d_array precision lowp sampler2DMS; precision lowp sampler2DMSArray; #endif vec4 vgpu_texelFetch(sampler2D sampler, vec2 P, float lod){return texelFetch(sampler, ivec2(P), int(lod));} vec4 vgpu_texelFetch(sampler3D sampler, vec3 P, float lod){return texelFetch(sampler, ivec3(P), int(lod));} vec4 vgpu_texelFetch(sampler2DArray sampler, vec3 P, float lod){return texelFetch(sampler, ivec3(P), int(lod));} #ifdef GL_EXT_texture_buffer vec4 vgpu_texelFetch(samplerBuffer sampler, float P){return texelFetch(sampler, int(P));} #endif #ifdef GL_OES_texture_storage_multisample_2d_array vec4 vgpu_texelFetch(sampler2DMS sampler, vec2 P, float _sample){return texelFetch(sampler, ivec2(P), int(_sample));} vec4 vgpu_texelFetch(sampler2DMSArray sampler, vec3 P, float _sample){return texelFetch(sampler, ivec3(P), int(_sample));} #endif #line 0 1 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, float shape) { if (shape == 0.0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 3 0 in vec3 Position; in vec4 Color; in vec2 UV0; in vec2 UV2; uniform sampler2D Sampler2; uniform mat4 ModelViewMat; uniform mat4 ProjMat; uniform mat3 IViewRotMat; uniform float FogShape; out float vertexDistance; out vec4 vertexColor; out vec2 texCoord0; void main() { gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.00000); vertexDistance = fog_distance(ModelViewMat, IViewRotMat * Position, FogShape); vertexColor = Color * vgpu_texelFetch(Sampler2, UV2 / 16.0, 0.0); texCoord0 = UV0; } version string: 150New VGPU Shader source: #version 320 es #define texture2D texture #define attribute in #define varying out precision highp float; precision highp int; #line 0 1 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, int shape) { if (shape == 0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 3 0 uniform sampler2D Sampler0; uniform vec4 ColorModulator; uniform float FogStart; uniform float FogEnd; uniform vec4 FogColor; in float vertexDistance; in vec4 vertexColor; in vec2 texCoord0; out vec4 fragColor; void main() { vec4 color = texture(Sampler0, texCoord0).rrrr * vertexColor * ColorModulator; if (color.a < 0.100000) { discard; } fragColor = linear_fog(color, vertexDistance, FogStart, FogEnd, FogColor); } New VGPU Shader conversion: #version 320 es #ifdef GL_OES_texture_storage_multisample_2d_array #extension GL_OES_texture_storage_multisample_2d_array : enable #endif #ifdef GL_EXT_texture_buffer #extension GL_EXT_texture_buffer : enable #endif #ifdef GL_EXT_texture_cube_map_array #extension GL_EXT_texture_cube_map_array : enable #endif #ifdef GL_EXT_shader_non_constant_global_initializers #extension GL_EXT_shader_non_constant_global_initializers : enable #endif precision highp float; precision lowp image2D; precision lowp image2DArray; precision lowp image3D; precision lowp imageCube; precision lowp sampler2D; precision lowp sampler3D; precision lowp sampler2DShadow; precision lowp samplerCubeShadow; precision lowp sampler2DArray; precision lowp sampler2DArrayShadow; precision lowp samplerCube; #ifdef GL_EXT_texture_buffer precision lowp samplerBuffer; precision lowp imageBuffer; #endif #ifdef GL_EXT_texture_cube_map_array precision lowp imageCubeArray; precision lowp samplerCubeArray; precision lowp samplerCubeArrayShadow; #endif #ifdef GL_OES_texture_storage_multisample_2d_array precision lowp sampler2DMS; precision lowp sampler2DMSArray; #endif #line 0 1 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, float shape) { if (shape == 0.0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 3 0 uniform sampler2D Sampler0; uniform vec4 ColorModulator; uniform float FogStart; uniform float FogEnd; uniform vec4 FogColor; in float vertexDistance; in vec4 vertexColor; in vec2 texCoord0; out vec4 fragColor; void main() { vec4 color = texture(Sampler0, texCoord0).rrrr * vertexColor * ColorModulator; if (color.a < 0.100000) { discard; } fragColor = linear_fog(color, vertexDistance, FogStart, FogEnd, FogColor); } version string: 150New VGPU Shader source: #version 320 es #define texture2D texture #define attribute in #define varying out precision highp float; precision highp int; in vec3 Position; in vec4 Color; in vec2 UV0; uniform mat4 ModelViewMat; uniform mat4 ProjMat; out vec4 vertexColor; out vec2 texCoord0; void main() { gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.00000); vertexColor = Color; texCoord0 = UV0; } New VGPU Shader conversion: #version 320 es #ifdef GL_OES_texture_storage_multisample_2d_array #extension GL_OES_texture_storage_multisample_2d_array : enable #endif #ifdef GL_EXT_texture_buffer #extension GL_EXT_texture_buffer : enable #endif #ifdef GL_EXT_texture_cube_map_array #extension GL_EXT_texture_cube_map_array : enable #endif #ifdef GL_EXT_shader_non_constant_global_initializers #extension GL_EXT_shader_non_constant_global_initializers : enable #endif precision highp float; precision lowp image2D; precision lowp image2DArray; precision lowp image3D; precision lowp imageCube; precision lowp sampler2D; precision lowp sampler3D; precision lowp sampler2DShadow; precision lowp samplerCubeShadow; precision lowp sampler2DArray; precision lowp sampler2DArrayShadow; precision lowp samplerCube; #ifdef GL_EXT_texture_buffer precision lowp samplerBuffer; precision lowp imageBuffer; #endif #ifdef GL_EXT_texture_cube_map_array precision lowp imageCubeArray; precision lowp samplerCubeArray; precision lowp samplerCubeArrayShadow; #endif #ifdef GL_OES_texture_storage_multisample_2d_array precision lowp sampler2DMS; precision lowp sampler2DMSArray; #endif in vec3 Position; in vec4 Color; in vec2 UV0; uniform mat4 ModelViewMat; uniform mat4 ProjMat; out vec4 vertexColor; out vec2 texCoord0; void main() { gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.00000); vertexColor = Color; texCoord0 = UV0; } version string: 150New VGPU Shader source: #version 320 es #define texture2D texture #define attribute in #define varying out precision highp float; precision highp int; uniform sampler2D Sampler0; uniform vec4 ColorModulator; in vec4 vertexColor; in vec2 texCoord0; out vec4 fragColor; void main() { vec4 color = texture(Sampler0, texCoord0) * vertexColor; if (color.a < 0.100000) { discard; } fragColor = color * ColorModulator; } New VGPU Shader conversion: #version 320 es #ifdef GL_OES_texture_storage_multisample_2d_array #extension GL_OES_texture_storage_multisample_2d_array : enable #endif #ifdef GL_EXT_texture_buffer #extension GL_EXT_texture_buffer : enable #endif #ifdef GL_EXT_texture_cube_map_array #extension GL_EXT_texture_cube_map_array : enable #endif #ifdef GL_EXT_shader_non_constant_global_initializers #extension GL_EXT_shader_non_constant_global_initializers : enable #endif precision highp float; precision lowp image2D; precision lowp image2DArray; precision lowp image3D; precision lowp imageCube; precision lowp sampler2D; precision lowp sampler3D; precision lowp sampler2DShadow; precision lowp samplerCubeShadow; precision lowp sampler2DArray; precision lowp sampler2DArrayShadow; precision lowp samplerCube; #ifdef GL_EXT_texture_buffer precision lowp samplerBuffer; precision lowp imageBuffer; #endif #ifdef GL_EXT_texture_cube_map_array precision lowp imageCubeArray; precision lowp samplerCubeArray; precision lowp samplerCubeArrayShadow; #endif #ifdef GL_OES_texture_storage_multisample_2d_array precision lowp sampler2DMS; precision lowp sampler2DMSArray; #endif uniform sampler2D Sampler0; uniform vec4 ColorModulator; in vec4 vertexColor; in vec2 texCoord0; out vec4 fragColor; void main() { vec4 color = texture(Sampler0, texCoord0) * vertexColor; if (color.a < 0.100000) { discard; } fragColor = color * ColorModulator; } version string: 150New VGPU Shader source: #version 320 es #define texture2D texture #define attribute in #define varying out precision highp float; precision highp int; in vec3 Position; in vec4 Color; uniform mat4 ModelViewMat; uniform mat4 ProjMat; out vec4 vertexColor; void main() { gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.00000); vertexColor = Color; } New VGPU Shader conversion: #version 320 es #ifdef GL_OES_texture_storage_multisample_2d_array #extension GL_OES_texture_storage_multisample_2d_array : enable #endif #ifdef GL_EXT_texture_buffer #extension GL_EXT_texture_buffer : enable #endif #ifdef GL_EXT_texture_cube_map_array #extension GL_EXT_texture_cube_map_array : enable #endif #ifdef GL_EXT_shader_non_constant_global_initializers #extension GL_EXT_shader_non_constant_global_initializers : enable #endif precision highp float; precision lowp image2D; precision lowp image2DArray; precision lowp image3D; precision lowp imageCube; precision lowp sampler2D; precision lowp sampler3D; precision lowp sampler2DShadow; precision lowp samplerCubeShadow; precision lowp sampler2DArray; precision lowp sampler2DArrayShadow; precision lowp samplerCube; #ifdef GL_EXT_texture_buffer precision lowp samplerBuffer; precision lowp imageBuffer; #endif #ifdef GL_EXT_texture_cube_map_array precision lowp imageCubeArray; precision lowp samplerCubeArray; precision lowp samplerCubeArrayShadow; #endif #ifdef GL_OES_texture_storage_multisample_2d_array precision lowp sampler2DMS; precision lowp sampler2DMSArray; #endif in vec3 Position; in vec4 Color; uniform mat4 ModelViewMat; uniform mat4 ProjMat; out vec4 vertexColor; void main() { gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.00000); vertexColor = Color; } version string: 150New VGPU Shader source: #version 320 es #define texture2D texture #define attribute in #define varying out precision highp float; precision highp int; uniform vec4 ColorModulator; in vec4 vertexColor; out vec4 fragColor; void main() { vec4 color = vertexColor; if (color.a < 0.100000) { discard; } fragColor = color * ColorModulator; } New VGPU Shader conversion: #version 320 es #ifdef GL_OES_texture_storage_multisample_2d_array #extension GL_OES_texture_storage_multisample_2d_array : enable #endif #ifdef GL_EXT_texture_buffer #extension GL_EXT_texture_buffer : enable #endif #ifdef GL_EXT_texture_cube_map_array #extension GL_EXT_texture_cube_map_array : enable #endif #ifdef GL_EXT_shader_non_constant_global_initializers #extension GL_EXT_shader_non_constant_global_initializers : enable #endif precision highp float; precision lowp image2D; precision lowp image2DArray; precision lowp image3D; precision lowp imageCube; precision lowp sampler2D; precision lowp sampler3D; precision lowp sampler2DShadow; precision lowp samplerCubeShadow; precision lowp sampler2DArray; precision lowp sampler2DArrayShadow; precision lowp samplerCube; #ifdef GL_EXT_texture_buffer precision lowp samplerBuffer; precision lowp imageBuffer; #endif #ifdef GL_EXT_texture_cube_map_array precision lowp imageCubeArray; precision lowp samplerCubeArray; precision lowp samplerCubeArrayShadow; #endif #ifdef GL_OES_texture_storage_multisample_2d_array precision lowp sampler2DMS; precision lowp sampler2DMSArray; #endif uniform vec4 ColorModulator; in vec4 vertexColor; out vec4 fragColor; void main() { vec4 color = vertexColor; if (color.a < 0.100000) { discard; } fragColor = color * ColorModulator; } version string: 150New VGPU Shader source: #version 320 es #define texture2D texture #define attribute in #define varying out precision highp float; precision highp int; in vec3 Position; in vec4 Color; in vec2 UV0; uniform mat4 ModelViewMat; uniform mat4 ProjMat; out vec4 vertexColor; out vec2 texCoord0; void main() { gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.00000); vertexColor = Color; texCoord0 = UV0; } New VGPU Shader conversion: #version 320 es #ifdef GL_OES_texture_storage_multisample_2d_array #extension GL_OES_texture_storage_multisample_2d_array : enable #endif #ifdef GL_EXT_texture_buffer #extension GL_EXT_texture_buffer : enable #endif #ifdef GL_EXT_texture_cube_map_array #extension GL_EXT_texture_cube_map_array : enable #endif #ifdef GL_EXT_shader_non_constant_global_initializers #extension GL_EXT_shader_non_constant_global_initializers : enable #endif precision highp float; precision lowp image2D; precision lowp image2DArray; precision lowp image3D; precision lowp imageCube; precision lowp sampler2D; precision lowp sampler3D; precision lowp sampler2DShadow; precision lowp samplerCubeShadow; precision lowp sampler2DArray; precision lowp sampler2DArrayShadow; precision lowp samplerCube; #ifdef GL_EXT_texture_buffer precision lowp samplerBuffer; precision lowp imageBuffer; #endif #ifdef GL_EXT_texture_cube_map_array precision lowp imageCubeArray; precision lowp samplerCubeArray; precision lowp samplerCubeArrayShadow; #endif #ifdef GL_OES_texture_storage_multisample_2d_array precision lowp sampler2DMS; precision lowp sampler2DMSArray; #endif in vec3 Position; in vec4 Color; in vec2 UV0; uniform mat4 ModelViewMat; uniform mat4 ProjMat; out vec4 vertexColor; out vec2 texCoord0; void main() { gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.00000); vertexColor = Color; texCoord0 = UV0; } version string: 150New VGPU Shader source: #version 320 es #define texture2D texture #define attribute in #define varying out precision highp float; precision highp int; uniform sampler2D Sampler0; uniform vec4 ColorModulator; in vec4 vertexColor; in vec2 texCoord0; out vec4 fragColor; void main() { vec4 color = texture(Sampler0, texCoord0).rrrr * vertexColor; if (color.a < 0.100000) { discard; } fragColor = color * ColorModulator; } New VGPU Shader conversion: #version 320 es #ifdef GL_OES_texture_storage_multisample_2d_array #extension GL_OES_texture_storage_multisample_2d_array : enable #endif #ifdef GL_EXT_texture_buffer #extension GL_EXT_texture_buffer : enable #endif #ifdef GL_EXT_texture_cube_map_array #extension GL_EXT_texture_cube_map_array : enable #endif #ifdef GL_EXT_shader_non_constant_global_initializers #extension GL_EXT_shader_non_constant_global_initializers : enable #endif precision highp float; precision lowp image2D; precision lowp image2DArray; precision lowp image3D; precision lowp imageCube; precision lowp sampler2D; precision lowp sampler3D; precision lowp sampler2DShadow; precision lowp samplerCubeShadow; precision lowp sampler2DArray; precision lowp sampler2DArrayShadow; precision lowp samplerCube; #ifdef GL_EXT_texture_buffer precision lowp samplerBuffer; precision lowp imageBuffer; #endif #ifdef GL_EXT_texture_cube_map_array precision lowp imageCubeArray; precision lowp samplerCubeArray; precision lowp samplerCubeArrayShadow; #endif #ifdef GL_OES_texture_storage_multisample_2d_array precision lowp sampler2DMS; precision lowp sampler2DMSArray; #endif uniform sampler2D Sampler0; uniform vec4 ColorModulator; in vec4 vertexColor; in vec2 texCoord0; out vec4 fragColor; void main() { vec4 color = texture(Sampler0, texCoord0).rrrr * vertexColor; if (color.a < 0.100000) { discard; } fragColor = color * ColorModulator; } version string: 150New VGPU Shader source: #version 320 es #define texture2D texture #define attribute in #define varying out precision highp float; precision highp int; #line 0 1 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, int shape) { if (shape == 0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 3 0 in vec3 Position; in vec4 Color; uniform mat4 ModelViewMat; uniform mat4 ProjMat; uniform mat3 IViewRotMat; uniform int FogShape; out float vertexDistance; out vec4 vertexColor; void main() { gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.00000); vertexDistance = fog_distance(ModelViewMat, IViewRotMat * Position, FogShape); vertexColor = Color; } New VGPU Shader conversion: #version 320 es #ifdef GL_OES_texture_storage_multisample_2d_array #extension GL_OES_texture_storage_multisample_2d_array : enable #endif #ifdef GL_EXT_texture_buffer #extension GL_EXT_texture_buffer : enable #endif #ifdef GL_EXT_texture_cube_map_array #extension GL_EXT_texture_cube_map_array : enable #endif #ifdef GL_EXT_shader_non_constant_global_initializers #extension GL_EXT_shader_non_constant_global_initializers : enable #endif precision highp float; precision lowp image2D; precision lowp image2DArray; precision lowp image3D; precision lowp imageCube; precision lowp sampler2D; precision lowp sampler3D; precision lowp sampler2DShadow; precision lowp samplerCubeShadow; precision lowp sampler2DArray; precision lowp sampler2DArrayShadow; precision lowp samplerCube; #ifdef GL_EXT_texture_buffer precision lowp samplerBuffer; precision lowp imageBuffer; #endif #ifdef GL_EXT_texture_cube_map_array precision lowp imageCubeArray; precision lowp samplerCubeArray; precision lowp samplerCubeArrayShadow; #endif #ifdef GL_OES_texture_storage_multisample_2d_array precision lowp sampler2DMS; precision lowp sampler2DMSArray; #endif #line 0 1 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, float shape) { if (shape == 0.0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 3 0 in vec3 Position; in vec4 Color; uniform mat4 ModelViewMat; uniform mat4 ProjMat; uniform mat3 IViewRotMat; uniform float FogShape; out float vertexDistance; out vec4 vertexColor; void main() { gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.00000); vertexDistance = fog_distance(ModelViewMat, IViewRotMat * Position, FogShape); vertexColor = Color; } version string: 150New VGPU Shader source: #version 320 es #define texture2D texture #define attribute in #define varying out precision highp float; precision highp int; #line 0 1 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, int shape) { if (shape == 0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 3 0 uniform vec4 ColorModulator; uniform float FogStart; uniform float FogEnd; in float vertexDistance; in vec4 vertexColor; out vec4 fragColor; void main() { fragColor = vertexColor * ColorModulator * linear_fog_fade(vertexDistance, FogStart, FogEnd); } New VGPU Shader conversion: #version 320 es #ifdef GL_OES_texture_storage_multisample_2d_array #extension GL_OES_texture_storage_multisample_2d_array : enable #endif #ifdef GL_EXT_texture_buffer #extension GL_EXT_texture_buffer : enable #endif #ifdef GL_EXT_texture_cube_map_array #extension GL_EXT_texture_cube_map_array : enable #endif #ifdef GL_EXT_shader_non_constant_global_initializers #extension GL_EXT_shader_non_constant_global_initializers : enable #endif precision highp float; precision lowp image2D; precision lowp image2DArray; precision lowp image3D; precision lowp imageCube; precision lowp sampler2D; precision lowp sampler3D; precision lowp sampler2DShadow; precision lowp samplerCubeShadow; precision lowp sampler2DArray; precision lowp sampler2DArrayShadow; precision lowp samplerCube; #ifdef GL_EXT_texture_buffer precision lowp samplerBuffer; precision lowp imageBuffer; #endif #ifdef GL_EXT_texture_cube_map_array precision lowp imageCubeArray; precision lowp samplerCubeArray; precision lowp samplerCubeArrayShadow; #endif #ifdef GL_OES_texture_storage_multisample_2d_array precision lowp sampler2DMS; precision lowp sampler2DMSArray; #endif #line 0 1 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, float shape) { if (shape == 0.0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 3 0 uniform vec4 ColorModulator; uniform float FogStart; uniform float FogEnd; in float vertexDistance; in vec4 vertexColor; out vec4 fragColor; void main() { fragColor = vertexColor * ColorModulator * linear_fog_fade(vertexDistance, FogStart, FogEnd); } version string: 150New VGPU Shader source: #version 320 es #define texture2D texture #define attribute in #define varying out precision highp float; precision highp int; #line 0 1 #define MINECRAFT_LIGHT_POWER (0.6) #define MINECRAFT_AMBIENT_LIGHT (0.4) vec4 minecraft_mix_light(vec3 lightDir0, vec3 lightDir1, vec3 normal, vec4 color) { lightDir0 = normalize(lightDir0); lightDir1 = normalize(lightDir1); float light0 = max(0.00000, dot(lightDir0, normal)); float light1 = max(0.00000, dot(lightDir1, normal)); float lightAccum = min(1.00000, (light0 + light1) * MINECRAFT_LIGHT_POWER + MINECRAFT_AMBIENT_LIGHT); return vec4(color.rgb * lightAccum, color.a); } vec4 minecraft_sample_lightmap(sampler2D lightMap, ivec2 uv) { return texture(lightMap, clamp(uv / 256.000, vec2(0.500000 / 16.0000), vec2(15.5000 / 16.0000))); } #line 0 2 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, int shape) { if (shape == 0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 4 0 in vec3 Position; in vec4 Color; in vec2 UV0; in ivec2 UV2; in vec3 Normal; uniform sampler2D Sampler2; uniform mat4 ModelViewMat; uniform mat4 ProjMat; uniform vec3 ChunkOffset; uniform int FogShape; out float vertexDistance; out vec4 vertexColor; out vec2 texCoord0; out vec4 normal; void main() { vec3 pos = Position + ChunkOffset; gl_Position = ProjMat * ModelViewMat * vec4(pos, 1.00000); vertexDistance = fog_distance(ModelViewMat, pos, FogShape); vertexColor = Color * minecraft_sample_lightmap(Sampler2, UV2); texCoord0 = UV0; normal = ProjMat * ModelViewMat * vec4(Normal, 0.00000); } New VGPU Shader conversion: #version 320 es #ifdef GL_OES_texture_storage_multisample_2d_array #extension GL_OES_texture_storage_multisample_2d_array : enable #endif #ifdef GL_EXT_texture_buffer #extension GL_EXT_texture_buffer : enable #endif #ifdef GL_EXT_texture_cube_map_array #extension GL_EXT_texture_cube_map_array : enable #endif #ifdef GL_EXT_shader_non_constant_global_initializers #extension GL_EXT_shader_non_constant_global_initializers : enable #endif precision highp float; precision lowp image2D; precision lowp image2DArray; precision lowp image3D; precision lowp imageCube; precision lowp sampler2D; precision lowp sampler3D; precision lowp sampler2DShadow; precision lowp samplerCubeShadow; precision lowp sampler2DArray; precision lowp sampler2DArrayShadow; precision lowp samplerCube; #ifdef GL_EXT_texture_buffer precision lowp samplerBuffer; precision lowp imageBuffer; #endif #ifdef GL_EXT_texture_cube_map_array precision lowp imageCubeArray; precision lowp samplerCubeArray; precision lowp samplerCubeArrayShadow; #endif #ifdef GL_OES_texture_storage_multisample_2d_array precision lowp sampler2DMS; precision lowp sampler2DMSArray; #endif #line 0 1 #define MINECRAFT_LIGHT_POWER (0.6) #define MINECRAFT_AMBIENT_LIGHT (0.4) vec4 minecraft_mix_light(vec3 lightDir0, vec3 lightDir1, vec3 normal, vec4 color) { lightDir0 = normalize(lightDir0); lightDir1 = normalize(lightDir1); float light0 = max(0.00000, dot(lightDir0, normal)); float light1 = max(0.00000, dot(lightDir1, normal)); float lightAccum = min(1.00000, (light0 + light1) * MINECRAFT_LIGHT_POWER + MINECRAFT_AMBIENT_LIGHT); return vec4(color.rgb * lightAccum, color.a); } vec4 minecraft_sample_lightmap(sampler2D lightMap, vec2 uv) { return texture(lightMap, clamp(uv / 256.000, vec2(0.500000 / 16.0000), vec2(15.5000 / 16.0000))); } #line 0 2 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, float shape) { if (shape == 0.0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 4 0 in vec3 Position; in vec4 Color; in vec2 UV0; in vec2 UV2; in vec3 Normal; uniform sampler2D Sampler2; uniform mat4 ModelViewMat; uniform mat4 ProjMat; uniform vec3 ChunkOffset; uniform float FogShape; out float vertexDistance; out vec4 vertexColor; out vec2 texCoord0; out vec4 normal; void main() { vec3 pos = Position + ChunkOffset; gl_Position = ProjMat * ModelViewMat * vec4(pos, 1.00000); vertexDistance = fog_distance(ModelViewMat, pos, FogShape); vertexColor = Color * minecraft_sample_lightmap(Sampler2, UV2); texCoord0 = UV0; normal = ProjMat * ModelViewMat * vec4(Normal, 0.00000); } version string: 150New VGPU Shader source: #version 320 es #define texture2D texture #define attribute in #define varying out precision highp float; precision highp int; #line 0 1 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, int shape) { if (shape == 0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 3 0 uniform sampler2D Sampler0; uniform vec4 ColorModulator; uniform float FogStart; uniform float FogEnd; uniform vec4 FogColor; in float vertexDistance; in vec4 vertexColor; in vec2 texCoord0; in vec4 normal; out vec4 fragColor; void main() { vec4 color = texture(Sampler0, texCoord0) * vertexColor * ColorModulator; if (color.a < 0.100000) { discard; } fragColor = linear_fog(color, vertexDistance, FogStart, FogEnd, FogColor); } New VGPU Shader conversion: #version 320 es #ifdef GL_OES_texture_storage_multisample_2d_array #extension GL_OES_texture_storage_multisample_2d_array : enable #endif #ifdef GL_EXT_texture_buffer #extension GL_EXT_texture_buffer : enable #endif #ifdef GL_EXT_texture_cube_map_array #extension GL_EXT_texture_cube_map_array : enable #endif #ifdef GL_EXT_shader_non_constant_global_initializers #extension GL_EXT_shader_non_constant_global_initializers : enable #endif precision highp float; precision lowp image2D; precision lowp image2DArray; precision lowp image3D; precision lowp imageCube; precision lowp sampler2D; precision lowp sampler3D; precision lowp sampler2DShadow; precision lowp samplerCubeShadow; precision lowp sampler2DArray; precision lowp sampler2DArrayShadow; precision lowp samplerCube; #ifdef GL_EXT_texture_buffer precision lowp samplerBuffer; precision lowp imageBuffer; #endif #ifdef GL_EXT_texture_cube_map_array precision lowp imageCubeArray; precision lowp samplerCubeArray; precision lowp samplerCubeArrayShadow; #endif #ifdef GL_OES_texture_storage_multisample_2d_array precision lowp sampler2DMS; precision lowp sampler2DMSArray; #endif #line 0 1 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, float shape) { if (shape == 0.0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 3 0 uniform sampler2D Sampler0; uniform vec4 ColorModulator; uniform float FogStart; uniform float FogEnd; uniform vec4 FogColor; in float vertexDistance; in vec4 vertexColor; in vec2 texCoord0; in vec4 normal; out vec4 fragColor; void main() { vec4 color = texture(Sampler0, texCoord0) * vertexColor * ColorModulator; if (color.a < 0.100000) { discard; } fragColor = linear_fog(color, vertexDistance, FogStart, FogEnd, FogColor); } version string: 150New VGPU Shader source: #version 320 es #define texture2D texture #define attribute in #define varying out precision highp float; precision highp int; #line 0 1 vec4 projection_from_position(vec4 position) { vec4 projection = position * 0.500000; projection.xy = vec2(projection.x + projection.w, projection.y + projection.w); projection.zw = position.zw; return projection; } #line 3 0 in vec3 Position; uniform mat4 ModelViewMat; uniform mat4 ProjMat; out vec4 texProj0; void main() { gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.00000); texProj0 = projection_from_position(gl_Position); } New VGPU Shader conversion: #version 320 es #ifdef GL_OES_texture_storage_multisample_2d_array #extension GL_OES_texture_storage_multisample_2d_array : enable #endif #ifdef GL_EXT_texture_buffer #extension GL_EXT_texture_buffer : enable #endif #ifdef GL_EXT_texture_cube_map_array #extension GL_EXT_texture_cube_map_array : enable #endif #ifdef GL_EXT_shader_non_constant_global_initializers #extension GL_EXT_shader_non_constant_global_initializers : enable #endif precision highp float; precision lowp image2D; precision lowp image2DArray; precision lowp image3D; precision lowp imageCube; precision lowp sampler2D; precision lowp sampler3D; precision lowp sampler2DShadow; precision lowp samplerCubeShadow; precision lowp sampler2DArray; precision lowp sampler2DArrayShadow; precision lowp samplerCube; #ifdef GL_EXT_texture_buffer precision lowp samplerBuffer; precision lowp imageBuffer; #endif #ifdef GL_EXT_texture_cube_map_array precision lowp imageCubeArray; precision lowp samplerCubeArray; precision lowp samplerCubeArrayShadow; #endif #ifdef GL_OES_texture_storage_multisample_2d_array precision lowp sampler2DMS; precision lowp sampler2DMSArray; #endif #line 0 1 vec4 projection_from_position(vec4 position) { vec4 projection = position * 0.500000; projection.xy = vec2(projection.x + projection.w, projection.y + projection.w); projection.zw = position.zw; return projection; } #line 3 0 in vec3 Position; uniform mat4 ModelViewMat; uniform mat4 ProjMat; out vec4 texProj0; void main() { gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.00000); texProj0 = projection_from_position(gl_Position); } version string: 150New VGPU Shader source: #version 320 es #define texture2D texture #define attribute in #define varying out precision highp float; precision highp int; #line 0 1 mat2 mat2_rotate_z(float radians) { return mat2( cos(radians), -sin(radians), sin(radians), cos(radians) ); } #line 3 0 uniform sampler2D Sampler0; uniform sampler2D Sampler1; uniform float GameTime; uniform int EndPortalLayers; in vec4 texProj0; const vec3[] COLORS = vec3[]( vec3(0.0220870, 0.0983990, 0.110818), vec3(0.0118920, 0.0959240, 0.0894850), vec3(0.0276360, 0.101689, 0.100326), vec3(0.0465640, 0.109883, 0.114838), vec3(0.0649010, 0.117696, 0.0971890), vec3(0.0637610, 0.0868950, 0.123646), vec3(0.0848170, 0.111994, 0.166380), vec3(0.0974890, 0.154120, 0.0910640), vec3(0.106152, 0.131144, 0.195191), vec3(0.0977210, 0.110188, 0.187229), vec3(0.133516, 0.138278, 0.148582), vec3(0.0700060, 0.243332, 0.235792), vec3(0.196766, 0.142899, 0.214696), vec3(0.0472810, 0.315338, 0.321970), vec3(0.204675, 0.390010, 0.302066), vec3(0.0809550, 0.314821, 0.661491) ); const mat4 SCALE_TRANSLATE = mat4( 0.500000, 0.00000, 0.00000, 0.250000, 0.00000, 0.500000, 0.00000, 0.250000, 0.00000, 0.00000, 1.00000, 0.00000, 0.00000, 0.00000, 0.00000, 1.00000 ); mat4 end_portal_layer(float layer) { mat4 translate = mat4( 1.00000, 0.00000, 0.00000, 17.0000 / layer, 0.00000, 1.00000, 0.00000, (2.00000 + layer / 1.50000) * (GameTime * 1.50000), 0.00000, 0.00000, 1.00000, 0.00000, 0.00000, 0.00000, 0.00000, 1.00000 ); mat2 rotate = mat2_rotate_z(radians((layer * layer * 4321.00 + layer * 9.00000) * 2.00000)); mat2 scale = mat2((4.50000 - layer / 4.00000) * 2.00000); return mat4(scale * rotate) * translate * SCALE_TRANSLATE; } out vec4 fragColor; void main() { vec3 color = textureProj(Sampler0, texProj0).rgb * COLORS[0]; for (int i = 0; i < EndPortalLayers; i++) { color += textureProj(Sampler1, texProj0 * end_portal_layer(float(i + 1))).rgb * COLORS[i]; } fragColor = vec4(color, 1.00000); } New VGPU Shader conversion: #version 320 es #ifdef GL_OES_texture_storage_multisample_2d_array #extension GL_OES_texture_storage_multisample_2d_array : enable #endif #ifdef GL_EXT_texture_buffer #extension GL_EXT_texture_buffer : enable #endif #ifdef GL_EXT_texture_cube_map_array #extension GL_EXT_texture_cube_map_array : enable #endif #ifdef GL_EXT_shader_non_constant_global_initializers #extension GL_EXT_shader_non_constant_global_initializers : enable #endif precision highp float; precision lowp image2D; precision lowp image2DArray; precision lowp image3D; precision lowp imageCube; precision lowp sampler2D; precision lowp sampler3D; precision lowp sampler2DShadow; precision lowp samplerCubeShadow; precision lowp sampler2DArray; precision lowp sampler2DArrayShadow; precision lowp samplerCube; #ifdef GL_EXT_texture_buffer precision lowp samplerBuffer; precision lowp imageBuffer; #endif #ifdef GL_EXT_texture_cube_map_array precision lowp imageCubeArray; precision lowp samplerCubeArray; precision lowp samplerCubeArrayShadow; #endif #ifdef GL_OES_texture_storage_multisample_2d_array precision lowp sampler2DMS; precision lowp sampler2DMSArray; #endif #line 0 1 mat2 mat2_rotate_z(float radians) { return mat2( cos(radians), -sin(radians), sin(radians), cos(radians) ); } #line 3 0 uniform sampler2D Sampler0; uniform sampler2D Sampler1; uniform float GameTime; uniform float EndPortalLayers; in vec4 texProj0; const vec3[] COLORS = vec3[]( vec3(0.0220870, 0.0983990, 0.110818), vec3(0.0118920, 0.0959240, 0.0894850), vec3(0.0276360, 0.101689, 0.100326), vec3(0.0465640, 0.109883, 0.114838), vec3(0.0649010, 0.117696, 0.0971890), vec3(0.0637610, 0.0868950, 0.123646), vec3(0.0848170, 0.111994, 0.166380), vec3(0.0974890, 0.154120, 0.0910640), vec3(0.106152, 0.131144, 0.195191), vec3(0.0977210, 0.110188, 0.187229), vec3(0.133516, 0.138278, 0.148582), vec3(0.0700060, 0.243332, 0.235792), vec3(0.196766, 0.142899, 0.214696), vec3(0.0472810, 0.315338, 0.321970), vec3(0.204675, 0.390010, 0.302066), vec3(0.0809550, 0.314821, 0.661491) ); const mat4 SCALE_TRANSLATE = mat4( 0.500000, 0.00000, 0.00000, 0.250000, 0.00000, 0.500000, 0.00000, 0.250000, 0.00000, 0.00000, 1.00000, 0.00000, 0.00000, 0.00000, 0.00000, 1.00000 ); mat4 end_portal_layer(float layer) { mat4 translate = mat4( 1.00000, 0.00000, 0.00000, 17.0000 / layer, 0.00000, 1.00000, 0.00000, (2.00000 + layer / 1.50000) * (GameTime * 1.50000), 0.00000, 0.00000, 1.00000, 0.00000, 0.00000, 0.00000, 0.00000, 1.00000 ); mat2 rotate = mat2_rotate_z(radians((layer * layer * 4321.00 + layer * 9.00000) * 2.00000)); mat2 scale = mat2((4.50000 - layer / 4.00000) * 2.00000); return mat4(scale * rotate) * translate * SCALE_TRANSLATE; } out vec4 fragColor; void main() { vec3 color = textureProj(Sampler0, texProj0).rgb * COLORS[0]; for (float i = 0.0; i < EndPortalLayers; i++) { color += textureProj(Sampler1, texProj0 * end_portal_layer(float(i + 1.0))).rgb * COLORS[int(i)]; } fragColor = vec4(color, 1.00000); } version string: 150New VGPU Shader source: #version 320 es #define texture2D texture #define attribute in #define varying out precision highp float; precision highp int; #line 0 1 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, int shape) { if (shape == 0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 3 0 in vec3 Position; in vec4 Color; in vec3 Normal; uniform mat4 ModelViewMat; uniform mat4 ProjMat; uniform float LineWidth; uniform vec2 ScreenSize; uniform int FogShape; out float vertexDistance; out vec4 vertexColor; const float VIEW_SHRINK = 1.00000 - (1.00000 / 256.000); const mat4 VIEW_SCALE = mat4( VIEW_SHRINK, 0.00000, 0.00000, 0.00000, 0.00000, VIEW_SHRINK, 0.00000, 0.00000, 0.00000, 0.00000, VIEW_SHRINK, 0.00000, 0.00000, 0.00000, 0.00000, 1.00000 ); void main() { vec4 linePosStart = ProjMat * VIEW_SCALE * ModelViewMat * vec4(Position, 1.00000); vec4 linePosEnd = ProjMat * VIEW_SCALE * ModelViewMat * vec4(Position + Normal, 1.00000); vec3 ndc1 = linePosStart.xyz / linePosStart.w; vec3 ndc2 = linePosEnd.xyz / linePosEnd.w; vec2 lineScreenDirection = normalize((ndc2.xy - ndc1.xy) * ScreenSize); vec2 lineOffset = vec2(-lineScreenDirection.y, lineScreenDirection.x) * LineWidth / ScreenSize; if (lineOffset.x < 0.00000) { lineOffset *= -1.00000; } if (gl_VertexID % 2 == 0) { gl_Position = vec4((ndc1 + vec3(lineOffset, 0.00000)) * linePosStart.w, linePosStart.w); } else { gl_Position = vec4((ndc1 - vec3(lineOffset, 0.00000)) * linePosStart.w, linePosStart.w); } vertexDistance = fog_distance(ModelViewMat, Position, FogShape); vertexColor = Color; } New VGPU Shader conversion: #version 320 es #ifdef GL_OES_texture_storage_multisample_2d_array #extension GL_OES_texture_storage_multisample_2d_array : enable #endif #ifdef GL_EXT_texture_buffer #extension GL_EXT_texture_buffer : enable #endif #ifdef GL_EXT_texture_cube_map_array #extension GL_EXT_texture_cube_map_array : enable #endif #ifdef GL_EXT_shader_non_constant_global_initializers #extension GL_EXT_shader_non_constant_global_initializers : enable #endif precision highp float; precision lowp image2D; precision lowp image2DArray; precision lowp image3D; precision lowp imageCube; precision lowp sampler2D; precision lowp sampler3D; precision lowp sampler2DShadow; precision lowp samplerCubeShadow; precision lowp sampler2DArray; precision lowp sampler2DArrayShadow; precision lowp samplerCube; #ifdef GL_EXT_texture_buffer precision lowp samplerBuffer; precision lowp imageBuffer; #endif #ifdef GL_EXT_texture_cube_map_array precision lowp imageCubeArray; precision lowp samplerCubeArray; precision lowp samplerCubeArrayShadow; #endif #ifdef GL_OES_texture_storage_multisample_2d_array precision lowp sampler2DMS; precision lowp sampler2DMSArray; #endif #line 0 1 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, float shape) { if (shape == 0.0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 3 0 in vec3 Position; in vec4 Color; in vec3 Normal; uniform mat4 ModelViewMat; uniform mat4 ProjMat; uniform float LineWidth; uniform vec2 ScreenSize; uniform float FogShape; out float vertexDistance; out vec4 vertexColor; const float VIEW_SHRINK = 1.00000 - (1.00000 / 256.000); const mat4 VIEW_SCALE = mat4( VIEW_SHRINK, 0.00000, 0.00000, 0.00000, 0.00000, VIEW_SHRINK, 0.00000, 0.00000, 0.00000, 0.00000, VIEW_SHRINK, 0.00000, 0.00000, 0.00000, 0.00000, 1.00000 ); void main() { vec4 linePosStart = ProjMat * VIEW_SCALE * ModelViewMat * vec4(Position, 1.00000); vec4 linePosEnd = ProjMat * VIEW_SCALE * ModelViewMat * vec4(Position + Normal, 1.00000); vec3 ndc1 = linePosStart.xyz / linePosStart.w; vec3 ndc2 = linePosEnd.xyz / linePosEnd.w; vec2 lineScreenDirection = normalize((ndc2.xy - ndc1.xy) * ScreenSize); vec2 lineOffset = vec2(-lineScreenDirection.y, lineScreenDirection.x) * LineWidth / ScreenSize; if (lineOffset.x < 0.00000) { lineOffset *= -1.00000; } if ( mod(float(gl_VertexID), 2.0 ) == 0.0) { gl_Position = vec4((ndc1 + vec3(lineOffset, 0.00000)) * linePosStart.w, linePosStart.w); } else { gl_Position = vec4((ndc1 - vec3(lineOffset, 0.00000)) * linePosStart.w, linePosStart.w); } vertexDistance = fog_distance(ModelViewMat, Position, FogShape); vertexColor = Color; } version string: 150New VGPU Shader source: #version 320 es #define texture2D texture #define attribute in #define varying out precision highp float; precision highp int; #line 0 1 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, int shape) { if (shape == 0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 3 0 uniform vec4 ColorModulator; uniform float FogStart; uniform float FogEnd; uniform vec4 FogColor; in float vertexDistance; in vec4 vertexColor; out vec4 fragColor; void main() { vec4 color = vertexColor * ColorModulator; fragColor = linear_fog(color, vertexDistance, FogStart, FogEnd, FogColor); } New VGPU Shader conversion: #version 320 es #ifdef GL_OES_texture_storage_multisample_2d_array #extension GL_OES_texture_storage_multisample_2d_array : enable #endif #ifdef GL_EXT_texture_buffer #extension GL_EXT_texture_buffer : enable #endif #ifdef GL_EXT_texture_cube_map_array #extension GL_EXT_texture_cube_map_array : enable #endif #ifdef GL_EXT_shader_non_constant_global_initializers #extension GL_EXT_shader_non_constant_global_initializers : enable #endif precision highp float; precision lowp image2D; precision lowp image2DArray; precision lowp image3D; precision lowp imageCube; precision lowp sampler2D; precision lowp sampler3D; precision lowp sampler2DShadow; precision lowp samplerCubeShadow; precision lowp sampler2DArray; precision lowp sampler2DArrayShadow; precision lowp samplerCube; #ifdef GL_EXT_texture_buffer precision lowp samplerBuffer; precision lowp imageBuffer; #endif #ifdef GL_EXT_texture_cube_map_array precision lowp imageCubeArray; precision lowp samplerCubeArray; precision lowp samplerCubeArrayShadow; #endif #ifdef GL_OES_texture_storage_multisample_2d_array precision lowp sampler2DMS; precision lowp sampler2DMSArray; #endif #line 0 1 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, float shape) { if (shape == 0.0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 3 0 uniform vec4 ColorModulator; uniform float FogStart; uniform float FogEnd; uniform vec4 FogColor; in float vertexDistance; in vec4 vertexColor; out vec4 fragColor; void main() { vec4 color = vertexColor * ColorModulator; fragColor = linear_fog(color, vertexDistance, FogStart, FogEnd, FogColor); } version string: 150New VGPU Shader source: #version 320 es #define texture2D texture #define attribute in #define varying out precision highp float; precision highp int; in vec3 Position; in vec4 Color; in vec2 UV0; in vec2 UV2; in vec3 Normal; uniform mat4 ModelViewMat; uniform mat4 ProjMat; out vec4 vertexColor; out vec2 texCoord0; out vec2 texCoord2; out vec4 normal; void main() { gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.00000); vertexColor = Color; texCoord0 = UV0; texCoord2 = UV2; normal = ProjMat * ModelViewMat * vec4(Normal, 0.00000); } New VGPU Shader conversion: #version 320 es #ifdef GL_OES_texture_storage_multisample_2d_array #extension GL_OES_texture_storage_multisample_2d_array : enable #endif #ifdef GL_EXT_texture_buffer #extension GL_EXT_texture_buffer : enable #endif #ifdef GL_EXT_texture_cube_map_array #extension GL_EXT_texture_cube_map_array : enable #endif #ifdef GL_EXT_shader_non_constant_global_initializers #extension GL_EXT_shader_non_constant_global_initializers : enable #endif precision highp float; precision lowp image2D; precision lowp image2DArray; precision lowp image3D; precision lowp imageCube; precision lowp sampler2D; precision lowp sampler3D; precision lowp sampler2DShadow; precision lowp samplerCubeShadow; precision lowp sampler2DArray; precision lowp sampler2DArrayShadow; precision lowp samplerCube; #ifdef GL_EXT_texture_buffer precision lowp samplerBuffer; precision lowp imageBuffer; #endif #ifdef GL_EXT_texture_cube_map_array precision lowp imageCubeArray; precision lowp samplerCubeArray; precision lowp samplerCubeArrayShadow; #endif #ifdef GL_OES_texture_storage_multisample_2d_array precision lowp sampler2DMS; precision lowp sampler2DMSArray; #endif in vec3 Position; in vec4 Color; in vec2 UV0; in vec2 UV2; in vec3 Normal; uniform mat4 ModelViewMat; uniform mat4 ProjMat; out vec4 vertexColor; out vec2 texCoord0; out vec2 texCoord2; out vec4 normal; void main() { gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.00000); vertexColor = Color; texCoord0 = UV0; texCoord2 = UV2; normal = ProjMat * ModelViewMat * vec4(Normal, 0.00000); } version string: 150New VGPU Shader source: #version 320 es #define texture2D texture #define attribute in #define varying out precision highp float; precision highp int; uniform sampler2D Sampler0; uniform vec4 ColorModulator; in vec4 vertexColor; in vec2 texCoord0; in vec2 texCoord2; in vec4 normal; out vec4 fragColor; void main() { vec4 color = texture(Sampler0, texCoord0) * vertexColor; if (color.a < 0.100000) { discard; } fragColor = color * ColorModulator; } New VGPU Shader conversion: #version 320 es #ifdef GL_OES_texture_storage_multisample_2d_array #extension GL_OES_texture_storage_multisample_2d_array : enable #endif #ifdef GL_EXT_texture_buffer #extension GL_EXT_texture_buffer : enable #endif #ifdef GL_EXT_texture_cube_map_array #extension GL_EXT_texture_cube_map_array : enable #endif #ifdef GL_EXT_shader_non_constant_global_initializers #extension GL_EXT_shader_non_constant_global_initializers : enable #endif precision highp float; precision lowp image2D; precision lowp image2DArray; precision lowp image3D; precision lowp imageCube; precision lowp sampler2D; precision lowp sampler3D; precision lowp sampler2DShadow; precision lowp samplerCubeShadow; precision lowp sampler2DArray; precision lowp sampler2DArrayShadow; precision lowp samplerCube; #ifdef GL_EXT_texture_buffer precision lowp samplerBuffer; precision lowp imageBuffer; #endif #ifdef GL_EXT_texture_cube_map_array precision lowp imageCubeArray; precision lowp samplerCubeArray; precision lowp samplerCubeArrayShadow; #endif #ifdef GL_OES_texture_storage_multisample_2d_array precision lowp sampler2DMS; precision lowp sampler2DMSArray; #endif uniform sampler2D Sampler0; uniform vec4 ColorModulator; in vec4 vertexColor; in vec2 texCoord0; in vec2 texCoord2; in vec4 normal; out vec4 fragColor; void main() { vec4 color = texture(Sampler0, texCoord0) * vertexColor; if (color.a < 0.100000) { discard; } fragColor = color * ColorModulator; } version string: 150New VGPU Shader source: #version 320 es #define texture2D texture #define attribute in #define varying out precision highp float; precision highp int; in vec3 Position; in vec4 Color; uniform mat4 ModelViewMat; uniform mat4 ProjMat; out vec4 vertexColor; void main() { gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.00000); vertexColor = Color; } New VGPU Shader conversion: #version 320 es #ifdef GL_OES_texture_storage_multisample_2d_array #extension GL_OES_texture_storage_multisample_2d_array : enable #endif #ifdef GL_EXT_texture_buffer #extension GL_EXT_texture_buffer : enable #endif #ifdef GL_EXT_texture_cube_map_array #extension GL_EXT_texture_cube_map_array : enable #endif #ifdef GL_EXT_shader_non_constant_global_initializers #extension GL_EXT_shader_non_constant_global_initializers : enable #endif precision highp float; precision lowp image2D; precision lowp image2DArray; precision lowp image3D; precision lowp imageCube; precision lowp sampler2D; precision lowp sampler3D; precision lowp sampler2DShadow; precision lowp samplerCubeShadow; precision lowp sampler2DArray; precision lowp sampler2DArrayShadow; precision lowp samplerCube; #ifdef GL_EXT_texture_buffer precision lowp samplerBuffer; precision lowp imageBuffer; #endif #ifdef GL_EXT_texture_cube_map_array precision lowp imageCubeArray; precision lowp samplerCubeArray; precision lowp samplerCubeArrayShadow; #endif #ifdef GL_OES_texture_storage_multisample_2d_array precision lowp sampler2DMS; precision lowp sampler2DMSArray; #endif in vec3 Position; in vec4 Color; uniform mat4 ModelViewMat; uniform mat4 ProjMat; out vec4 vertexColor; void main() { gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.00000); vertexColor = Color; } version string: 150New VGPU Shader source: #version 320 es #define texture2D texture #define attribute in #define varying out precision highp float; precision highp int; in vec4 vertexColor; uniform vec4 ColorModulator; out vec4 fragColor; void main() { vec4 color = vertexColor; if (color.a == 0.00000) { discard; } fragColor = color * ColorModulator; } New VGPU Shader conversion: #version 320 es #ifdef GL_OES_texture_storage_multisample_2d_array #extension GL_OES_texture_storage_multisample_2d_array : enable #endif #ifdef GL_EXT_texture_buffer #extension GL_EXT_texture_buffer : enable #endif #ifdef GL_EXT_texture_cube_map_array #extension GL_EXT_texture_cube_map_array : enable #endif #ifdef GL_EXT_shader_non_constant_global_initializers #extension GL_EXT_shader_non_constant_global_initializers : enable #endif precision highp float; precision lowp image2D; precision lowp image2DArray; precision lowp image3D; precision lowp imageCube; precision lowp sampler2D; precision lowp sampler3D; precision lowp sampler2DShadow; precision lowp samplerCubeShadow; precision lowp sampler2DArray; precision lowp sampler2DArrayShadow; precision lowp samplerCube; #ifdef GL_EXT_texture_buffer precision lowp samplerBuffer; precision lowp imageBuffer; #endif #ifdef GL_EXT_texture_cube_map_array precision lowp imageCubeArray; precision lowp samplerCubeArray; precision lowp samplerCubeArrayShadow; #endif #ifdef GL_OES_texture_storage_multisample_2d_array precision lowp sampler2DMS; precision lowp sampler2DMSArray; #endif in vec4 vertexColor; uniform vec4 ColorModulator; out vec4 fragColor; void main() { vec4 color = vertexColor; if (color.a == 0.00000) { discard; } fragColor = color * ColorModulator; } version string: 150New VGPU Shader source: #version 320 es #define texture2D texture #define attribute in #define varying out precision highp float; precision highp int; in vec3 Position; in vec4 Color; uniform mat4 ModelViewMat; uniform mat4 ProjMat; out vec4 vertexColor; void main() { gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.00000); vertexColor = Color; } New VGPU Shader conversion: #version 320 es #ifdef GL_OES_texture_storage_multisample_2d_array #extension GL_OES_texture_storage_multisample_2d_array : enable #endif #ifdef GL_EXT_texture_buffer #extension GL_EXT_texture_buffer : enable #endif #ifdef GL_EXT_texture_cube_map_array #extension GL_EXT_texture_cube_map_array : enable #endif #ifdef GL_EXT_shader_non_constant_global_initializers #extension GL_EXT_shader_non_constant_global_initializers : enable #endif precision highp float; precision lowp image2D; precision lowp image2DArray; precision lowp image3D; precision lowp imageCube; precision lowp sampler2D; precision lowp sampler3D; precision lowp sampler2DShadow; precision lowp samplerCubeShadow; precision lowp sampler2DArray; precision lowp sampler2DArrayShadow; precision lowp samplerCube; #ifdef GL_EXT_texture_buffer precision lowp samplerBuffer; precision lowp imageBuffer; #endif #ifdef GL_EXT_texture_cube_map_array precision lowp imageCubeArray; precision lowp samplerCubeArray; precision lowp samplerCubeArrayShadow; #endif #ifdef GL_OES_texture_storage_multisample_2d_array precision lowp sampler2DMS; precision lowp sampler2DMSArray; #endif in vec3 Position; in vec4 Color; uniform mat4 ModelViewMat; uniform mat4 ProjMat; out vec4 vertexColor; void main() { gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.00000); vertexColor = Color; } version string: 150New VGPU Shader source: #version 320 es #define texture2D texture #define attribute in #define varying out precision highp float; precision highp int; in vec4 vertexColor; uniform vec4 ColorModulator; out vec4 fragColor; void main() { vec4 color = vertexColor; if (color.a == 0.00000) { discard; } fragColor = color * ColorModulator; } New VGPU Shader conversion: #version 320 es #ifdef GL_OES_texture_storage_multisample_2d_array #extension GL_OES_texture_storage_multisample_2d_array : enable #endif #ifdef GL_EXT_texture_buffer #extension GL_EXT_texture_buffer : enable #endif #ifdef GL_EXT_texture_cube_map_array #extension GL_EXT_texture_cube_map_array : enable #endif #ifdef GL_EXT_shader_non_constant_global_initializers #extension GL_EXT_shader_non_constant_global_initializers : enable #endif precision highp float; precision lowp image2D; precision lowp image2DArray; precision lowp image3D; precision lowp imageCube; precision lowp sampler2D; precision lowp sampler3D; precision lowp sampler2DShadow; precision lowp samplerCubeShadow; precision lowp sampler2DArray; precision lowp sampler2DArrayShadow; precision lowp samplerCube; #ifdef GL_EXT_texture_buffer precision lowp samplerBuffer; precision lowp imageBuffer; #endif #ifdef GL_EXT_texture_cube_map_array precision lowp imageCubeArray; precision lowp samplerCubeArray; precision lowp samplerCubeArrayShadow; #endif #ifdef GL_OES_texture_storage_multisample_2d_array precision lowp sampler2DMS; precision lowp sampler2DMSArray; #endif in vec4 vertexColor; uniform vec4 ColorModulator; out vec4 fragColor; void main() { vec4 color = vertexColor; if (color.a == 0.00000) { discard; } fragColor = color * ColorModulator; } version string: 150New VGPU Shader source: #version 320 es #define texture2D texture #define attribute in #define varying out precision highp float; precision highp int; in vec3 Position; in vec4 Color; uniform mat4 ModelViewMat; uniform mat4 ProjMat; out vec4 vertexColor; void main() { gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.00000); vertexColor = Color; } New VGPU Shader conversion: #version 320 es #ifdef GL_OES_texture_storage_multisample_2d_array #extension GL_OES_texture_storage_multisample_2d_array : enable #endif #ifdef GL_EXT_texture_buffer #extension GL_EXT_texture_buffer : enable #endif #ifdef GL_EXT_texture_cube_map_array #extension GL_EXT_texture_cube_map_array : enable #endif #ifdef GL_EXT_shader_non_constant_global_initializers #extension GL_EXT_shader_non_constant_global_initializers : enable #endif precision highp float; precision lowp image2D; precision lowp image2DArray; precision lowp image3D; precision lowp imageCube; precision lowp sampler2D; precision lowp sampler3D; precision lowp sampler2DShadow; precision lowp samplerCubeShadow; precision lowp sampler2DArray; precision lowp sampler2DArrayShadow; precision lowp samplerCube; #ifdef GL_EXT_texture_buffer precision lowp samplerBuffer; precision lowp imageBuffer; #endif #ifdef GL_EXT_texture_cube_map_array precision lowp imageCubeArray; precision lowp samplerCubeArray; precision lowp samplerCubeArrayShadow; #endif #ifdef GL_OES_texture_storage_multisample_2d_array precision lowp sampler2DMS; precision lowp sampler2DMSArray; #endif in vec3 Position; in vec4 Color; uniform mat4 ModelViewMat; uniform mat4 ProjMat; out vec4 vertexColor; void main() { gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.00000); vertexColor = Color; } version string: 150New VGPU Shader source: #version 320 es #define texture2D texture #define attribute in #define varying out precision highp float; precision highp int; in vec4 vertexColor; uniform vec4 ColorModulator; out vec4 fragColor; void main() { vec4 color = vertexColor; if (color.a == 0.00000) { discard; } fragColor = color * ColorModulator; } New VGPU Shader conversion: #version 320 es #ifdef GL_OES_texture_storage_multisample_2d_array #extension GL_OES_texture_storage_multisample_2d_array : enable #endif #ifdef GL_EXT_texture_buffer #extension GL_EXT_texture_buffer : enable #endif #ifdef GL_EXT_texture_cube_map_array #extension GL_EXT_texture_cube_map_array : enable #endif #ifdef GL_EXT_shader_non_constant_global_initializers #extension GL_EXT_shader_non_constant_global_initializers : enable #endif precision highp float; precision lowp image2D; precision lowp image2DArray; precision lowp image3D; precision lowp imageCube; precision lowp sampler2D; precision lowp sampler3D; precision lowp sampler2DShadow; precision lowp samplerCubeShadow; precision lowp sampler2DArray; precision lowp sampler2DArrayShadow; precision lowp samplerCube; #ifdef GL_EXT_texture_buffer precision lowp samplerBuffer; precision lowp imageBuffer; #endif #ifdef GL_EXT_texture_cube_map_array precision lowp imageCubeArray; precision lowp samplerCubeArray; precision lowp samplerCubeArrayShadow; #endif #ifdef GL_OES_texture_storage_multisample_2d_array precision lowp sampler2DMS; precision lowp sampler2DMSArray; #endif in vec4 vertexColor; uniform vec4 ColorModulator; out vec4 fragColor; void main() { vec4 color = vertexColor; if (color.a == 0.00000) { discard; } fragColor = color * ColorModulator; } version string: 150New VGPU Shader source: #version 320 es #define texture2D texture #define attribute in #define varying out precision highp float; precision highp int; in vec3 Position; in vec4 Color; uniform mat4 ModelViewMat; uniform mat4 ProjMat; out vec4 vertexColor; void main() { gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.00000); vertexColor = Color; } New VGPU Shader conversion: #version 320 es #ifdef GL_OES_texture_storage_multisample_2d_array #extension GL_OES_texture_storage_multisample_2d_array : enable #endif #ifdef GL_EXT_texture_buffer #extension GL_EXT_texture_buffer : enable #endif #ifdef GL_EXT_texture_cube_map_array #extension GL_EXT_texture_cube_map_array : enable #endif #ifdef GL_EXT_shader_non_constant_global_initializers #extension GL_EXT_shader_non_constant_global_initializers : enable #endif precision highp float; precision lowp image2D; precision lowp image2DArray; precision lowp image3D; precision lowp imageCube; precision lowp sampler2D; precision lowp sampler3D; precision lowp sampler2DShadow; precision lowp samplerCubeShadow; precision lowp sampler2DArray; precision lowp sampler2DArrayShadow; precision lowp samplerCube; #ifdef GL_EXT_texture_buffer precision lowp samplerBuffer; precision lowp imageBuffer; #endif #ifdef GL_EXT_texture_cube_map_array precision lowp imageCubeArray; precision lowp samplerCubeArray; precision lowp samplerCubeArrayShadow; #endif #ifdef GL_OES_texture_storage_multisample_2d_array precision lowp sampler2DMS; precision lowp sampler2DMSArray; #endif in vec3 Position; in vec4 Color; uniform mat4 ModelViewMat; uniform mat4 ProjMat; out vec4 vertexColor; void main() { gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.00000); vertexColor = Color; } version string: 150New VGPU Shader source: #version 320 es #define texture2D texture #define attribute in #define varying out precision highp float; precision highp int; in vec4 vertexColor; uniform vec4 ColorModulator; out vec4 fragColor; void main() { vec4 color = vertexColor; if (color.a == 0.00000) { discard; } fragColor = color * ColorModulator; } New VGPU Shader conversion: #version 320 es #ifdef GL_OES_texture_storage_multisample_2d_array #extension GL_OES_texture_storage_multisample_2d_array : enable #endif #ifdef GL_EXT_texture_buffer #extension GL_EXT_texture_buffer : enable #endif #ifdef GL_EXT_texture_cube_map_array #extension GL_EXT_texture_cube_map_array : enable #endif #ifdef GL_EXT_shader_non_constant_global_initializers #extension GL_EXT_shader_non_constant_global_initializers : enable #endif precision highp float; precision lowp image2D; precision lowp image2DArray; precision lowp image3D; precision lowp imageCube; precision lowp sampler2D; precision lowp sampler3D; precision lowp sampler2DShadow; precision lowp samplerCubeShadow; precision lowp sampler2DArray; precision lowp sampler2DArrayShadow; precision lowp samplerCube; #ifdef GL_EXT_texture_buffer precision lowp samplerBuffer; precision lowp imageBuffer; #endif #ifdef GL_EXT_texture_cube_map_array precision lowp imageCubeArray; precision lowp samplerCubeArray; precision lowp samplerCubeArrayShadow; #endif #ifdef GL_OES_texture_storage_multisample_2d_array precision lowp sampler2DMS; precision lowp sampler2DMSArray; #endif in vec4 vertexColor; uniform vec4 ColorModulator; out vec4 fragColor; void main() { vec4 color = vertexColor; if (color.a == 0.00000) { discard; } fragColor = color * ColorModulator; } version string: 150New VGPU Shader source: #version 320 es #define texture2D texture #define attribute in #define varying out precision highp float; precision highp int; in vec4 Position; uniform mat4 ProjMat; uniform vec2 InSize; uniform vec2 OutSize; out vec2 texCoord; out vec2 oneTexel; void main(){ vec4 outPos = ProjMat * vec4(Position.xy, 0.00000, 1.00000); gl_Position = vec4(outPos.xy, 0.200000, 1.00000); oneTexel = 1.00000 / InSize; texCoord = Position.xy / OutSize; } New VGPU Shader conversion: #version 320 es #ifdef GL_OES_texture_storage_multisample_2d_array #extension GL_OES_texture_storage_multisample_2d_array : enable #endif #ifdef GL_EXT_texture_buffer #extension GL_EXT_texture_buffer : enable #endif #ifdef GL_EXT_texture_cube_map_array #extension GL_EXT_texture_cube_map_array : enable #endif #ifdef GL_EXT_shader_non_constant_global_initializers #extension GL_EXT_shader_non_constant_global_initializers : enable #endif precision highp float; precision lowp image2D; precision lowp image2DArray; precision lowp image3D; precision lowp imageCube; precision lowp sampler2D; precision lowp sampler3D; precision lowp sampler2DShadow; precision lowp samplerCubeShadow; precision lowp sampler2DArray; precision lowp sampler2DArrayShadow; precision lowp samplerCube; #ifdef GL_EXT_texture_buffer precision lowp samplerBuffer; precision lowp imageBuffer; #endif #ifdef GL_EXT_texture_cube_map_array precision lowp imageCubeArray; precision lowp samplerCubeArray; precision lowp samplerCubeArrayShadow; #endif #ifdef GL_OES_texture_storage_multisample_2d_array precision lowp sampler2DMS; precision lowp sampler2DMSArray; #endif in vec4 Position; uniform mat4 ProjMat; uniform vec2 InSize; uniform vec2 OutSize; out vec2 texCoord; out vec2 oneTexel; void main(){ vec4 outPos = ProjMat * vec4(Position.xy, 0.00000, 1.00000); gl_Position = vec4(outPos.xy, 0.200000, 1.00000); oneTexel = 1.00000 / InSize; texCoord = Position.xy / OutSize; } version string: 150New VGPU Shader source: #version 320 es #define texture2D texture #define attribute in #define varying out precision highp float; precision highp int; uniform sampler2D DiffuseSampler; in vec2 texCoord; in vec2 oneTexel; out vec4 fragColor; void main(){ vec4 center = texture(DiffuseSampler, texCoord); vec4 left = texture(DiffuseSampler, texCoord - vec2(oneTexel.x, 0.00000)); vec4 right = texture(DiffuseSampler, texCoord + vec2(oneTexel.x, 0.00000)); vec4 up = texture(DiffuseSampler, texCoord - vec2(0.00000, oneTexel.y)); vec4 down = texture(DiffuseSampler, texCoord + vec2(0.00000, oneTexel.y)); float leftDiff = abs(center.a - left.a); float rightDiff = abs(center.a - right.a); float upDiff = abs(center.a - up.a); float downDiff = abs(center.a - down.a); float total = clamp(leftDiff + rightDiff + upDiff + downDiff, 0.00000, 1.00000); vec3 outColor = center.rgb * center.a + left.rgb * left.a + right.rgb * right.a + up.rgb * up.a + down.rgb * down.a; fragColor = vec4(outColor * 0.200000, total); } New VGPU Shader conversion: #version 320 es #ifdef GL_OES_texture_storage_multisample_2d_array #extension GL_OES_texture_storage_multisample_2d_array : enable #endif #ifdef GL_EXT_texture_buffer #extension GL_EXT_texture_buffer : enable #endif #ifdef GL_EXT_texture_cube_map_array #extension GL_EXT_texture_cube_map_array : enable #endif #ifdef GL_EXT_shader_non_constant_global_initializers #extension GL_EXT_shader_non_constant_global_initializers : enable #endif precision highp float; precision lowp image2D; precision lowp image2DArray; precision lowp image3D; precision lowp imageCube; precision lowp sampler2D; precision lowp sampler3D; precision lowp sampler2DShadow; precision lowp samplerCubeShadow; precision lowp sampler2DArray; precision lowp sampler2DArrayShadow; precision lowp samplerCube; #ifdef GL_EXT_texture_buffer precision lowp samplerBuffer; precision lowp imageBuffer; #endif #ifdef GL_EXT_texture_cube_map_array precision lowp imageCubeArray; precision lowp samplerCubeArray; precision lowp samplerCubeArrayShadow; #endif #ifdef GL_OES_texture_storage_multisample_2d_array precision lowp sampler2DMS; precision lowp sampler2DMSArray; #endif uniform sampler2D DiffuseSampler; in vec2 texCoord; in vec2 oneTexel; out vec4 fragColor; void main(){ vec4 center = texture(DiffuseSampler, texCoord); vec4 left = texture(DiffuseSampler, texCoord - vec2(oneTexel.x, 0.00000)); vec4 right = texture(DiffuseSampler, texCoord + vec2(oneTexel.x, 0.00000)); vec4 up = texture(DiffuseSampler, texCoord - vec2(0.00000, oneTexel.y)); vec4 down = texture(DiffuseSampler, texCoord + vec2(0.00000, oneTexel.y)); float leftDiff = abs(center.a - left.a); float rightDiff = abs(center.a - right.a); float upDiff = abs(center.a - up.a); float downDiff = abs(center.a - down.a); float total = clamp(leftDiff + rightDiff + upDiff + downDiff, 0.00000, 1.00000); vec3 outColor = center.rgb * center.a + left.rgb * left.a + right.rgb * right.a + up.rgb * up.a + down.rgb * down.a; fragColor = vec4(outColor * 0.200000, total); } version string: 150New VGPU Shader source: #version 320 es #define texture2D texture #define attribute in #define varying out precision highp float; precision highp int; uniform sampler2D DiffuseSampler; in vec2 texCoord; in vec2 oneTexel; uniform vec2 InSize; uniform vec2 BlurDir; uniform float Radius; out vec4 fragColor; void main() { vec4 blurred = vec4(0.00000); float totalStrength = 0.00000; float totalAlpha = 0.00000; float totalSamples = 0.00000; for(float r = -Radius; r <= Radius; r += 1.00000) { vec4 sampleValue = texture(DiffuseSampler, texCoord + oneTexel * r * BlurDir); totalAlpha = totalAlpha + sampleValue.a; totalSamples = totalSamples + 1.00000; float strength = 1.00000 - abs(r / Radius); totalStrength = totalStrength + strength; blurred = blurred + sampleValue; } fragColor = vec4(blurred.rgb / (Radius * 2.00000 + 1.00000), totalAlpha); } New VGPU Shader conversion: #version 320 es #ifdef GL_OES_texture_storage_multisample_2d_array #extension GL_OES_texture_storage_multisample_2d_array : enable #endif #ifdef GL_EXT_texture_buffer #extension GL_EXT_texture_buffer : enable #endif #ifdef GL_EXT_texture_cube_map_array #extension GL_EXT_texture_cube_map_array : enable #endif #ifdef GL_EXT_shader_non_constant_global_initializers #extension GL_EXT_shader_non_constant_global_initializers : enable #endif precision highp float; precision lowp image2D; precision lowp image2DArray; precision lowp image3D; precision lowp imageCube; precision lowp sampler2D; precision lowp sampler3D; precision lowp sampler2DShadow; precision lowp samplerCubeShadow; precision lowp sampler2DArray; precision lowp sampler2DArrayShadow; precision lowp samplerCube; #ifdef GL_EXT_texture_buffer precision lowp samplerBuffer; precision lowp imageBuffer; #endif #ifdef GL_EXT_texture_cube_map_array precision lowp imageCubeArray; precision lowp samplerCubeArray; precision lowp samplerCubeArrayShadow; #endif #ifdef GL_OES_texture_storage_multisample_2d_array precision lowp sampler2DMS; precision lowp sampler2DMSArray; #endif uniform sampler2D DiffuseSampler; in vec2 texCoord; in vec2 oneTexel; uniform vec2 InSize; uniform vec2 BlurDir; uniform float Radius; out vec4 fragColor; void main() { vec4 blurred = vec4(0.00000); float totalStrength = 0.00000; float totalAlpha = 0.00000; float totalSamples = 0.00000; for(float r = -Radius; r <= Radius; r += 1.00000) { vec4 sampleValue = texture(DiffuseSampler, texCoord + oneTexel * r * BlurDir); totalAlpha = totalAlpha + sampleValue.a; totalSamples = totalSamples + 1.00000; float strength = 1.00000 - abs(r / Radius); totalStrength = totalStrength + strength; blurred = blurred + sampleValue; } fragColor = vec4(blurred.rgb / (Radius * 2.00000 + 1.00000), totalAlpha); } version string: 150New VGPU Shader source: #version 320 es #define texture2D texture #define attribute in #define varying out precision highp float; precision highp int; in vec4 Position; uniform mat4 ProjMat; uniform vec2 OutSize; out vec2 texCoord; void main(){ vec4 outPos = ProjMat * vec4(Position.xy, 0.00000, 1.00000); gl_Position = vec4(outPos.xy, 0.200000, 1.00000); texCoord = Position.xy / OutSize; } New VGPU Shader conversion: #version 320 es #ifdef GL_OES_texture_storage_multisample_2d_array #extension GL_OES_texture_storage_multisample_2d_array : enable #endif #ifdef GL_EXT_texture_buffer #extension GL_EXT_texture_buffer : enable #endif #ifdef GL_EXT_texture_cube_map_array #extension GL_EXT_texture_cube_map_array : enable #endif #ifdef GL_EXT_shader_non_constant_global_initializers #extension GL_EXT_shader_non_constant_global_initializers : enable #endif precision highp float; precision lowp image2D; precision lowp image2DArray; precision lowp image3D; precision lowp imageCube; precision lowp sampler2D; precision lowp sampler3D; precision lowp sampler2DShadow; precision lowp samplerCubeShadow; precision lowp sampler2DArray; precision lowp sampler2DArrayShadow; precision lowp samplerCube; #ifdef GL_EXT_texture_buffer precision lowp samplerBuffer; precision lowp imageBuffer; #endif #ifdef GL_EXT_texture_cube_map_array precision lowp imageCubeArray; precision lowp samplerCubeArray; precision lowp samplerCubeArrayShadow; #endif #ifdef GL_OES_texture_storage_multisample_2d_array precision lowp sampler2DMS; precision lowp sampler2DMSArray; #endif in vec4 Position; uniform mat4 ProjMat; uniform vec2 OutSize; out vec2 texCoord; void main(){ vec4 outPos = ProjMat * vec4(Position.xy, 0.00000, 1.00000); gl_Position = vec4(outPos.xy, 0.200000, 1.00000); texCoord = Position.xy / OutSize; } version string: 150New VGPU Shader source: #version 320 es #define texture2D texture #define attribute in #define varying out precision highp float; precision highp int; uniform sampler2D DiffuseSampler; uniform vec4 ColorModulate; in vec2 texCoord; out vec4 fragColor; void main(){ fragColor = texture(DiffuseSampler, texCoord) * ColorModulate; } New VGPU Shader conversion: #version 320 es #ifdef GL_OES_texture_storage_multisample_2d_array #extension GL_OES_texture_storage_multisample_2d_array : enable #endif #ifdef GL_EXT_texture_buffer #extension GL_EXT_texture_buffer : enable #endif #ifdef GL_EXT_texture_cube_map_array #extension GL_EXT_texture_cube_map_array : enable #endif #ifdef GL_EXT_shader_non_constant_global_initializers #extension GL_EXT_shader_non_constant_global_initializers : enable #endif precision highp float; precision lowp image2D; precision lowp image2DArray; precision lowp image3D; precision lowp imageCube; precision lowp sampler2D; precision lowp sampler3D; precision lowp sampler2DShadow; precision lowp samplerCubeShadow; precision lowp sampler2DArray; precision lowp sampler2DArrayShadow; precision lowp samplerCube; #ifdef GL_EXT_texture_buffer precision lowp samplerBuffer; precision lowp imageBuffer; #endif #ifdef GL_EXT_texture_cube_map_array precision lowp imageCubeArray; precision lowp samplerCubeArray; precision lowp samplerCubeArrayShadow; #endif #ifdef GL_OES_texture_storage_multisample_2d_array precision lowp sampler2DMS; precision lowp sampler2DMSArray; #endif uniform sampler2D DiffuseSampler; uniform vec4 ColorModulate; in vec2 texCoord; out vec4 fragColor; void main(){ fragColor = texture(DiffuseSampler, texCoord) * ColorModulate; } [17:40:14] [Render thread/INFO]: Created: 256x256x0 minecraft:textures/atlas/particles.png-atlas [17:40:14] [Render thread/INFO]: Created: 256x256x0 minecraft:textures/atlas/paintings.png-atlas [17:40:14] [Render thread/INFO]: Created: 128x128x0 minecraft:textures/atlas/mob_effects.png-atlas [17:40:14] [Render thread/INFO]: Created: 1024x512x0 minecraft:textures/atlas/gui.png-atlas [17:40:25] [Render thread/INFO]: Reloading ResourceManager: vanilla, file/wynn1.20.22222.zip [17:40:25] [Worker-Main-5/INFO]: Found unifont_all_no_pua-15.0.06.hex, loading [17:40:28] [Worker-Main-3/WARN]: Exception loading blockstate definition: 'minecraft:blockstates/cauldron.json' in resourcepack: 'file/wynn1.20.22222.zip' for variant: 'level=1': Unknown blockstate property: 'level' [17:40:28] [Worker-Main-3/WARN]: Exception loading blockstate definition: 'minecraft:blockstates/cauldron.json' in resourcepack: 'file/wynn1.20.22222.zip' for variant: 'level=2': Unknown blockstate property: 'level' [17:40:28] [Worker-Main-3/WARN]: Exception loading blockstate definition: 'minecraft:blockstates/cauldron.json' in resourcepack: 'file/wynn1.20.22222.zip' for variant: 'level=3': Unknown blockstate property: 'level' [17:40:28] [Worker-Main-3/WARN]: Exception loading blockstate definition: 'minecraft:blockstates/cauldron.json' in resourcepack: 'file/wynn1.20.22222.zip' for variant: 'level=0': Unknown blockstate property: 'level' [17:40:29] [Render thread/WARN]: Missing sound for event: minecraft:item.goat_horn.play [17:40:29] [Render thread/WARN]: Missing sound for event: minecraft:entity.goat.screaming.horn_break [ALSOFT] (EE) Failed to set real-time priority for thread: Operation not permitted (1) [ALSOFT] (EE) Failed to set real-time priority for thread: Operation not permitted (1) [17:40:29] [Render thread/INFO]: OpenAL initialized on device OpenSL [17:40:29] [Render thread/INFO]: Sound engine started [17:40:30] [Render thread/INFO]: Created: 4096x2048x0 minecraft:textures/atlas/blocks.png-atlas [17:40:30] [Render thread/INFO]: Created: 256x256x0 minecraft:textures/atlas/signs.png-atlas [17:40:30] [Render thread/INFO]: Created: 512x512x0 minecraft:textures/atlas/banner_patterns.png-atlas [17:40:30] [Render thread/INFO]: Created: 512x512x0 minecraft:textures/atlas/shield_patterns.png-atlas [17:40:30] [Render thread/INFO]: Created: 1024x1024x0 minecraft:textures/atlas/armor_trims.png-atlas [17:40:30] [Render thread/INFO]: Created: 256x256x0 minecraft:textures/atlas/chest.png-atlas [17:40:30] [Render thread/INFO]: Created: 128x64x0 minecraft:textures/atlas/decorated_pot.png-atlas [17:40:30] [Render thread/INFO]: Created: 512x256x0 minecraft:textures/atlas/beds.png-atlas [17:40:30] [Render thread/INFO]: Created: 512x256x0 minecraft:textures/atlas/shulker_boxes.png-atlas version string: 150New VGPU Shader source: #version 320 es #define texture2D texture #define attribute in #define varying out precision highp float; precision highp int; #line 0 1 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, int shape) { if (shape == 0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 3 0 in vec3 Position; in vec2 UV0; in vec4 Color; in ivec2 UV2; uniform sampler2D Sampler2; uniform mat4 ModelViewMat; uniform mat4 ProjMat; uniform int FogShape; out float vertexDistance; out vec2 texCoord0; out vec4 vertexColor; void main() { gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.00000); vertexDistance = fog_distance(ModelViewMat, Position, FogShape); texCoord0 = UV0; vertexColor = Color * texelFetch(Sampler2, UV2 / 16, 0); } New VGPU Shader conversion: #version 320 es #ifdef GL_OES_texture_storage_multisample_2d_array #extension GL_OES_texture_storage_multisample_2d_array : enable #endif #ifdef GL_EXT_texture_buffer #extension GL_EXT_texture_buffer : enable #endif #ifdef GL_EXT_texture_cube_map_array #extension GL_EXT_texture_cube_map_array : enable #endif #ifdef GL_EXT_shader_non_constant_global_initializers #extension GL_EXT_shader_non_constant_global_initializers : enable #endif precision highp float; precision lowp image2D; precision lowp image2DArray; precision lowp image3D; precision lowp imageCube; precision lowp sampler2D; precision lowp sampler3D; precision lowp sampler2DShadow; precision lowp samplerCubeShadow; precision lowp sampler2DArray; precision lowp sampler2DArrayShadow; precision lowp samplerCube; #ifdef GL_EXT_texture_buffer precision lowp samplerBuffer; precision lowp imageBuffer; #endif #ifdef GL_EXT_texture_cube_map_array precision lowp imageCubeArray; precision lowp samplerCubeArray; precision lowp samplerCubeArrayShadow; #endif #ifdef GL_OES_texture_storage_multisample_2d_array precision lowp sampler2DMS; precision lowp sampler2DMSArray; #endif vec4 vgpu_texelFetch(sampler2D sampler, vec2 P, float lod){return texelFetch(sampler, ivec2(P), int(lod));} vec4 vgpu_texelFetch(sampler3D sampler, vec3 P, float lod){return texelFetch(sampler, ivec3(P), int(lod));} vec4 vgpu_texelFetch(sampler2DArray sampler, vec3 P, float lod){return texelFetch(sampler, ivec3(P), int(lod));} #ifdef GL_EXT_texture_buffer vec4 vgpu_texelFetch(samplerBuffer sampler, float P){return texelFetch(sampler, int(P));} #endif #ifdef GL_OES_texture_storage_multisample_2d_array vec4 vgpu_texelFetch(sampler2DMS sampler, vec2 P, float _sample){return texelFetch(sampler, ivec2(P), int(_sample));} vec4 vgpu_texelFetch(sampler2DMSArray sampler, vec3 P, float _sample){return texelFetch(sampler, ivec3(P), int(_sample));} #endif #line 0 1 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, float shape) { if (shape == 0.0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 3 0 in vec3 Position; in vec2 UV0; in vec4 Color; in vec2 UV2; uniform sampler2D Sampler2; uniform mat4 ModelViewMat; uniform mat4 ProjMat; uniform float FogShape; out float vertexDistance; out vec2 texCoord0; out vec4 vertexColor; void main() { gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.00000); vertexDistance = fog_distance(ModelViewMat, Position, FogShape); texCoord0 = UV0; vertexColor = Color * vgpu_texelFetch(Sampler2, UV2 / 16.0, 0.0); } version string: 150New VGPU Shader source: #version 320 es #define texture2D texture #define attribute in #define varying out precision highp float; precision highp int; #line 0 1 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, int shape) { if (shape == 0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 3 0 uniform sampler2D Sampler0; uniform vec4 ColorModulator; uniform float FogStart; uniform float FogEnd; uniform vec4 FogColor; in float vertexDistance; in vec2 texCoord0; in vec4 vertexColor; out vec4 fragColor; void main() { vec4 color = texture(Sampler0, texCoord0) * vertexColor * ColorModulator; if (color.a < 0.100000) { discard; } fragColor = linear_fog(color, vertexDistance, FogStart, FogEnd, FogColor); } New VGPU Shader conversion: #version 320 es #ifdef GL_OES_texture_storage_multisample_2d_array #extension GL_OES_texture_storage_multisample_2d_array : enable #endif #ifdef GL_EXT_texture_buffer #extension GL_EXT_texture_buffer : enable #endif #ifdef GL_EXT_texture_cube_map_array #extension GL_EXT_texture_cube_map_array : enable #endif #ifdef GL_EXT_shader_non_constant_global_initializers #extension GL_EXT_shader_non_constant_global_initializers : enable #endif precision highp float; precision lowp image2D; precision lowp image2DArray; precision lowp image3D; precision lowp imageCube; precision lowp sampler2D; precision lowp sampler3D; precision lowp sampler2DShadow; precision lowp samplerCubeShadow; precision lowp sampler2DArray; precision lowp sampler2DArrayShadow; precision lowp samplerCube; #ifdef GL_EXT_texture_buffer precision lowp samplerBuffer; precision lowp imageBuffer; #endif #ifdef GL_EXT_texture_cube_map_array precision lowp imageCubeArray; precision lowp samplerCubeArray; precision lowp samplerCubeArrayShadow; #endif #ifdef GL_OES_texture_storage_multisample_2d_array precision lowp sampler2DMS; precision lowp sampler2DMSArray; #endif #line 0 1 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, float shape) { if (shape == 0.0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 3 0 uniform sampler2D Sampler0; uniform vec4 ColorModulator; uniform float FogStart; uniform float FogEnd; uniform vec4 FogColor; in float vertexDistance; in vec2 texCoord0; in vec4 vertexColor; out vec4 fragColor; void main() { vec4 color = texture(Sampler0, texCoord0) * vertexColor * ColorModulator; if (color.a < 0.100000) { discard; } fragColor = linear_fog(color, vertexDistance, FogStart, FogEnd, FogColor); } version string: 150New VGPU Shader source: #version 320 es #define texture2D texture #define attribute in #define varying out precision highp float; precision highp int; #line 0 1 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, int shape) { if (shape == 0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 3 0 in vec3 Position; uniform mat4 ProjMat; uniform mat4 ModelViewMat; uniform int FogShape; out float vertexDistance; void main() { gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.00000); vertexDistance = fog_distance(ModelViewMat, Position, FogShape); } New VGPU Shader conversion: #version 320 es #ifdef GL_OES_texture_storage_multisample_2d_array #extension GL_OES_texture_storage_multisample_2d_array : enable #endif #ifdef GL_EXT_texture_buffer #extension GL_EXT_texture_buffer : enable #endif #ifdef GL_EXT_texture_cube_map_array #extension GL_EXT_texture_cube_map_array : enable #endif #ifdef GL_EXT_shader_non_constant_global_initializers #extension GL_EXT_shader_non_constant_global_initializers : enable #endif precision highp float; precision lowp image2D; precision lowp image2DArray; precision lowp image3D; precision lowp imageCube; precision lowp sampler2D; precision lowp sampler3D; precision lowp sampler2DShadow; precision lowp samplerCubeShadow; precision lowp sampler2DArray; precision lowp sampler2DArrayShadow; precision lowp samplerCube; #ifdef GL_EXT_texture_buffer precision lowp samplerBuffer; precision lowp imageBuffer; #endif #ifdef GL_EXT_texture_cube_map_array precision lowp imageCubeArray; precision lowp samplerCubeArray; precision lowp samplerCubeArrayShadow; #endif #ifdef GL_OES_texture_storage_multisample_2d_array precision lowp sampler2DMS; precision lowp sampler2DMSArray; #endif #line 0 1 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, float shape) { if (shape == 0.0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 3 0 in vec3 Position; uniform mat4 ProjMat; uniform mat4 ModelViewMat; uniform float FogShape; out float vertexDistance; void main() { gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.00000); vertexDistance = fog_distance(ModelViewMat, Position, FogShape); } version string: 150New VGPU Shader source: #version 320 es #define texture2D texture #define attribute in #define varying out precision highp float; precision highp int; #line 0 1 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, int shape) { if (shape == 0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 3 0 uniform vec4 ColorModulator; uniform float FogStart; uniform float FogEnd; uniform vec4 FogColor; in float vertexDistance; out vec4 fragColor; void main() { fragColor = linear_fog(ColorModulator, vertexDistance, FogStart, FogEnd, FogColor); } New VGPU Shader conversion: #version 320 es #ifdef GL_OES_texture_storage_multisample_2d_array #extension GL_OES_texture_storage_multisample_2d_array : enable #endif #ifdef GL_EXT_texture_buffer #extension GL_EXT_texture_buffer : enable #endif #ifdef GL_EXT_texture_cube_map_array #extension GL_EXT_texture_cube_map_array : enable #endif #ifdef GL_EXT_shader_non_constant_global_initializers #extension GL_EXT_shader_non_constant_global_initializers : enable #endif precision highp float; precision lowp image2D; precision lowp image2DArray; precision lowp image3D; precision lowp imageCube; precision lowp sampler2D; precision lowp sampler3D; precision lowp sampler2DShadow; precision lowp samplerCubeShadow; precision lowp sampler2DArray; precision lowp sampler2DArrayShadow; precision lowp samplerCube; #ifdef GL_EXT_texture_buffer precision lowp samplerBuffer; precision lowp imageBuffer; #endif #ifdef GL_EXT_texture_cube_map_array precision lowp imageCubeArray; precision lowp samplerCubeArray; precision lowp samplerCubeArrayShadow; #endif #ifdef GL_OES_texture_storage_multisample_2d_array precision lowp sampler2DMS; precision lowp sampler2DMSArray; #endif #line 0 1 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, float shape) { if (shape == 0.0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 3 0 uniform vec4 ColorModulator; uniform float FogStart; uniform float FogEnd; uniform vec4 FogColor; in float vertexDistance; out vec4 fragColor; void main() { fragColor = linear_fog(ColorModulator, vertexDistance, FogStart, FogEnd, FogColor); } version string: 150New VGPU Shader source: #version 320 es #define texture2D texture #define attribute in #define varying out precision highp float; precision highp int; in vec3 Position;in vec4 Color;uniform mat4 ModelViewMat;uniform mat4 ProjMat;out vec4 vertexColor;int toint(ivec3 v){return v.x<<16|v.y<<8|v.z;}void main(){vec3 pos=Position;vertexColor=Color;if(Position.x<=2)switch(toint(ivec3(Color.rgb*254.500))){case 15118153:case 7844841:case 10526880:case 15224664:case 15386724:case 13619151:vertexColor=vec4(0);break;}gl_Position=ProjMat*ModelViewMat*vec4(pos,1.00000);} New VGPU Shader conversion: #version 320 es #ifdef GL_OES_texture_storage_multisample_2d_array #extension GL_OES_texture_storage_multisample_2d_array : enable #endif #ifdef GL_EXT_texture_buffer #extension GL_EXT_texture_buffer : enable #endif #ifdef GL_EXT_texture_cube_map_array #extension GL_EXT_texture_cube_map_array : enable #endif #ifdef GL_EXT_shader_non_constant_global_initializers #extension GL_EXT_shader_non_constant_global_initializers : enable #endif precision highp float; precision lowp image2D; precision lowp image2DArray; precision lowp image3D; precision lowp imageCube; precision lowp sampler2D; precision lowp sampler3D; precision lowp sampler2DShadow; precision lowp samplerCubeShadow; precision lowp sampler2DArray; precision lowp sampler2DArrayShadow; precision lowp samplerCube; #ifdef GL_EXT_texture_buffer precision lowp samplerBuffer; precision lowp imageBuffer; #endif #ifdef GL_EXT_texture_cube_map_array precision lowp imageCubeArray; precision lowp samplerCubeArray; precision lowp samplerCubeArrayShadow; #endif #ifdef GL_OES_texture_storage_multisample_2d_array precision lowp sampler2DMS; precision lowp sampler2DMSArray; #endif in vec3 Position;in vec4 Color;uniform mat4 ModelViewMat;uniform mat4 ProjMat;out vec4 vertexColor;float toint(vec3 v){return float(int(int(int(vx<<16)|v)y<<8)|vint(.z));}void main(){vec3 pos=Position;vertexColor=Color;if(Position.x<=2.0)switch(int(toint(vec3(Color.rgb*254.500)))){case 15118153:case 7844841:case 10526880:case 15224664:case 15386724:case 13619151:vertexColor=vec4(0.0);break;}gl_Position=ProjMat*ModelViewMat*vec4(pos,1.00000);} ERROR: 0:45: 'vx' : undeclared identifier ERROR: 0:45: '<<' : wrong operand types no operation '<<' exists that takes a left-hand operand of type 'float' and a right operand of type 'const int' (or there is no acceptable conversion) ERROR: 0:45: '|' : wrong operand types no operation '|' exists that takes a left-hand operand of type 'int' and a right operand of type 'in 3-component vector of float' (or there is no acceptable conversion) ERROR: 0:45: 'y' : Syntax error: syntax error INTERNAL ERROR: no main() function! ERROR: 4 compilation errors. No code generated. [17:40:30] [Render thread/INFO]: Caught error loading resourcepacks, removing all selected resourcepacks java.util.concurrent.CompletionException: java.lang.RuntimeException: could not reload shaders at java.util.concurrent.CompletableFuture.encodeThrowable(CompletableFuture.java:315) ~[?:?] at java.util.concurrent.CompletableFuture.completeThrowable(CompletableFuture.java:320) ~[?:?] at java.util.concurrent.CompletableFuture$UniAccept.tryFire(CompletableFuture.java:722) ~[?:?] at java.util.concurrent.CompletableFuture$Completion.run(CompletableFuture.java:482) ~[?:?] at anz.a(SourceFile:69) ~[1.20.2.jar:?] at bfo.d(SourceFile:156) ~[1.20.2.jar:?] at bfs.d(SourceFile:23) ~[1.20.2.jar:?] at bfo.x(SourceFile:130) ~[1.20.2.jar:?] at bfo.bp(SourceFile:115) ~[1.20.2.jar:?] at eqv.d(SourceFile:1231) ~[1.20.2.jar:?] at eqv.f(SourceFile:856) ~[1.20.2.jar:?] at net.minecraft.client.main.Main.main(SourceFile:253) ~[1.20.2.jar:?] Caused by: java.lang.RuntimeException: could not reload shaders at fnx.b(SourceFile:568) ~[1.20.2.jar:?] at fnx$1.a(SourceFile:442) ~[1.20.2.jar:?] at fnx$1.a(SourceFile:419) ~[1.20.2.jar:?] at any.a(SourceFile:13) ~[1.20.2.jar:?] at java.util.concurrent.CompletableFuture$UniAccept.tryFire(CompletableFuture.java:718) ~[?:?] ... 9 more Caused by: aez: Invalid shaders/core/position_color.json: Couldn't compile vertex program (file/wynn1.20.22222.zip, render/chat) : ERROR: 0:45: 'vx' : undeclared identifier ERROR: 0:45: '<<' : wrong operand types no operation '<<' exists that takes a left-hand operand of type 'float' and a right operand of type 'const int' (or there is no acceptable conversion) ERROR: 0:45: '|' : wrong operand types no operation '|' exists that takes a left-hand operand of type 'int' and a right operand of type 'in 3-component vector of float' (or there is no acceptable conversion) ERROR: 0:45: 'y' : Syntax error: syntax error INTERNAL ERROR: no main() function! ERROR: 4 compilation errors. No code generated. at aez.a(SourceFile:48) ~[1.20.2.jar:?] at fos.(SourceFile:203) ~[1.20.2.jar:?] at fnx.b(SourceFile:508) ~[1.20.2.jar:?] at fnx$1.a(SourceFile:442) ~[1.20.2.jar:?] at fnx$1.a(SourceFile:419) ~[1.20.2.jar:?] at any.a(SourceFile:13) ~[1.20.2.jar:?] at java.util.concurrent.CompletableFuture$UniAccept.tryFire(CompletableFuture.java:718) ~[?:?] ... 9 more Caused by: java.io.IOException: Couldn't compile vertex program (file/wynn1.20.22222.zip, render/chat) : ERROR: 0:45: 'vx' : undeclared identifier ERROR: 0:45: '<<' : wrong operand types no operation '<<' exists that takes a left-hand operand of type 'float' and a right operand of type 'const int' (or there is no acceptable conversion) ERROR: 0:45: '|' : wrong operand types no operation '|' exists that takes a left-hand operand of type 'int' and a right operand of type 'in 3-component vector of float' (or there is no acceptable conversion) ERROR: 0:45: 'y' : Syntax error: syntax error INTERNAL ERROR: no main() function! ERROR: 4 compilation errors. No code generated. at eld.b(SourceFile:69) ~[1.20.2.jar:?] at eld.a(SourceFile:51) ~[1.20.2.jar:?] at fos.a(SourceFile:242) ~[1.20.2.jar:?] at fos.(SourceFile:185) ~[1.20.2.jar:?] at fnx.b(SourceFile:508) ~[1.20.2.jar:?] at fnx$1.a(SourceFile:442) ~[1.20.2.jar:?] at fnx$1.a(SourceFile:419) ~[1.20.2.jar:?] at any.a(SourceFile:13) ~[1.20.2.jar:?] at java.util.concurrent.CompletableFuture$UniAccept.tryFire(CompletableFuture.java:718) ~[?:?] ... 9 more [17:40:30] [Render thread/INFO]: Reloading ResourceManager: vanilla [17:40:30] [Worker-Main-5/INFO]: Found unifont_all_no_pua-15.0.06.hex, loading [17:40:32] [Render thread/WARN]: Missing sound for event: minecraft:item.goat_horn.play [17:40:32] [Render thread/WARN]: Missing sound for event: minecraft:entity.goat.screaming.horn_break [ALSOFT] (EE) Failed to set real-time priority for thread: Operation not permitted (1) [ALSOFT] (EE) Failed to set real-time priority for thread: Operation not permitted (1) [17:40:32] [Render thread/INFO]: OpenAL initialized on device OpenSL [17:40:32] [Render thread/INFO]: Sound engine started [17:40:32] [Render thread/INFO]: Created: 4096x2048x0 minecraft:textures/atlas/blocks.png-atlas [17:40:32] [Render thread/INFO]: Created: 256x256x0 minecraft:textures/atlas/signs.png-atlas [17:40:32] [Render thread/INFO]: Created: 512x512x0 minecraft:textures/atlas/banner_patterns.png-atlas [17:40:32] [Render thread/INFO]: Created: 512x512x0 minecraft:textures/atlas/shield_patterns.png-atlas [17:40:32] [Render thread/INFO]: Created: 1024x1024x0 minecraft:textures/atlas/armor_trims.png-atlas [17:40:32] [Render thread/INFO]: Created: 256x256x0 minecraft:textures/atlas/chest.png-atlas [17:40:32] [Render thread/INFO]: Created: 128x64x0 minecraft:textures/atlas/decorated_pot.png-atlas [17:40:32] [Render thread/INFO]: Created: 512x256x0 minecraft:textures/atlas/beds.png-atlas [17:40:32] [Render thread/INFO]: Created: 512x256x0 minecraft:textures/atlas/shulker_boxes.png-atlas version string: 150New VGPU Shader source: #version 320 es #define texture2D texture #define attribute in #define varying out precision highp float; precision highp int; #line 0 1 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, int shape) { if (shape == 0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 3 0 in vec3 Position; in vec2 UV0; in vec4 Color; in ivec2 UV2; uniform sampler2D Sampler2; uniform mat4 ModelViewMat; uniform mat4 ProjMat; uniform int FogShape; out float vertexDistance; out vec2 texCoord0; out vec4 vertexColor; void main() { gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.00000); vertexDistance = fog_distance(ModelViewMat, Position, FogShape); texCoord0 = UV0; vertexColor = Color * texelFetch(Sampler2, UV2 / 16, 0); } New VGPU Shader conversion: #version 320 es #ifdef GL_OES_texture_storage_multisample_2d_array #extension GL_OES_texture_storage_multisample_2d_array : enable #endif #ifdef GL_EXT_texture_buffer #extension GL_EXT_texture_buffer : enable #endif #ifdef GL_EXT_texture_cube_map_array #extension GL_EXT_texture_cube_map_array : enable #endif #ifdef GL_EXT_shader_non_constant_global_initializers #extension GL_EXT_shader_non_constant_global_initializers : enable #endif precision highp float; precision lowp image2D; precision lowp image2DArray; precision lowp image3D; precision lowp imageCube; precision lowp sampler2D; precision lowp sampler3D; precision lowp sampler2DShadow; precision lowp samplerCubeShadow; precision lowp sampler2DArray; precision lowp sampler2DArrayShadow; precision lowp samplerCube; #ifdef GL_EXT_texture_buffer precision lowp samplerBuffer; precision lowp imageBuffer; #endif #ifdef GL_EXT_texture_cube_map_array precision lowp imageCubeArray; precision lowp samplerCubeArray; precision lowp samplerCubeArrayShadow; #endif #ifdef GL_OES_texture_storage_multisample_2d_array precision lowp sampler2DMS; precision lowp sampler2DMSArray; #endif vec4 vgpu_texelFetch(sampler2D sampler, vec2 P, float lod){return texelFetch(sampler, ivec2(P), int(lod));} vec4 vgpu_texelFetch(sampler3D sampler, vec3 P, float lod){return texelFetch(sampler, ivec3(P), int(lod));} vec4 vgpu_texelFetch(sampler2DArray sampler, vec3 P, float lod){return texelFetch(sampler, ivec3(P), int(lod));} #ifdef GL_EXT_texture_buffer vec4 vgpu_texelFetch(samplerBuffer sampler, float P){return texelFetch(sampler, int(P));} #endif #ifdef GL_OES_texture_storage_multisample_2d_array vec4 vgpu_texelFetch(sampler2DMS sampler, vec2 P, float _sample){return texelFetch(sampler, ivec2(P), int(_sample));} vec4 vgpu_texelFetch(sampler2DMSArray sampler, vec3 P, float _sample){return texelFetch(sampler, ivec3(P), int(_sample));} #endif #line 0 1 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, float shape) { if (shape == 0.0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 3 0 in vec3 Position; in vec2 UV0; in vec4 Color; in vec2 UV2; uniform sampler2D Sampler2; uniform mat4 ModelViewMat; uniform mat4 ProjMat; uniform float FogShape; out float vertexDistance; out vec2 texCoord0; out vec4 vertexColor; void main() { gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.00000); vertexDistance = fog_distance(ModelViewMat, Position, FogShape); texCoord0 = UV0; vertexColor = Color * vgpu_texelFetch(Sampler2, UV2 / 16.0, 0.0); } version string: 150New VGPU Shader source: #version 320 es #define texture2D texture #define attribute in #define varying out precision highp float; precision highp int; #line 0 1 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, int shape) { if (shape == 0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 3 0 uniform sampler2D Sampler0; uniform vec4 ColorModulator; uniform float FogStart; uniform float FogEnd; uniform vec4 FogColor; in float vertexDistance; in vec2 texCoord0; in vec4 vertexColor; out vec4 fragColor; void main() { vec4 color = texture(Sampler0, texCoord0) * vertexColor * ColorModulator; if (color.a < 0.100000) { discard; } fragColor = linear_fog(color, vertexDistance, FogStart, FogEnd, FogColor); } New VGPU Shader conversion: #version 320 es #ifdef GL_OES_texture_storage_multisample_2d_array #extension GL_OES_texture_storage_multisample_2d_array : enable #endif #ifdef GL_EXT_texture_buffer #extension GL_EXT_texture_buffer : enable #endif #ifdef GL_EXT_texture_cube_map_array #extension GL_EXT_texture_cube_map_array : enable #endif #ifdef GL_EXT_shader_non_constant_global_initializers #extension GL_EXT_shader_non_constant_global_initializers : enable #endif precision highp float; precision lowp image2D; precision lowp image2DArray; precision lowp image3D; precision lowp imageCube; precision lowp sampler2D; precision lowp sampler3D; precision lowp sampler2DShadow; precision lowp samplerCubeShadow; precision lowp sampler2DArray; precision lowp sampler2DArrayShadow; precision lowp samplerCube; #ifdef GL_EXT_texture_buffer precision lowp samplerBuffer; precision lowp imageBuffer; #endif #ifdef GL_EXT_texture_cube_map_array precision lowp imageCubeArray; precision lowp samplerCubeArray; precision lowp samplerCubeArrayShadow; #endif #ifdef GL_OES_texture_storage_multisample_2d_array precision lowp sampler2DMS; precision lowp sampler2DMSArray; #endif #line 0 1 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, float shape) { if (shape == 0.0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 3 0 uniform sampler2D Sampler0; uniform vec4 ColorModulator; uniform float FogStart; uniform float FogEnd; uniform vec4 FogColor; in float vertexDistance; in vec2 texCoord0; in vec4 vertexColor; out vec4 fragColor; void main() { vec4 color = texture(Sampler0, texCoord0) * vertexColor * ColorModulator; if (color.a < 0.100000) { discard; } fragColor = linear_fog(color, vertexDistance, FogStart, FogEnd, FogColor); } version string: 150New VGPU Shader source: #version 320 es #define texture2D texture #define attribute in #define varying out precision highp float; precision highp int; #line 0 1 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, int shape) { if (shape == 0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 3 0 in vec3 Position; uniform mat4 ProjMat; uniform mat4 ModelViewMat; uniform int FogShape; out float vertexDistance; void main() { gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.00000); vertexDistance = fog_distance(ModelViewMat, Position, FogShape); } New VGPU Shader conversion: #version 320 es #ifdef GL_OES_texture_storage_multisample_2d_array #extension GL_OES_texture_storage_multisample_2d_array : enable #endif #ifdef GL_EXT_texture_buffer #extension GL_EXT_texture_buffer : enable #endif #ifdef GL_EXT_texture_cube_map_array #extension GL_EXT_texture_cube_map_array : enable #endif #ifdef GL_EXT_shader_non_constant_global_initializers #extension GL_EXT_shader_non_constant_global_initializers : enable #endif precision highp float; precision lowp image2D; precision lowp image2DArray; precision lowp image3D; precision lowp imageCube; precision lowp sampler2D; precision lowp sampler3D; precision lowp sampler2DShadow; precision lowp samplerCubeShadow; precision lowp sampler2DArray; precision lowp sampler2DArrayShadow; precision lowp samplerCube; #ifdef GL_EXT_texture_buffer precision lowp samplerBuffer; precision lowp imageBuffer; #endif #ifdef GL_EXT_texture_cube_map_array precision lowp imageCubeArray; precision lowp samplerCubeArray; precision lowp samplerCubeArrayShadow; #endif #ifdef GL_OES_texture_storage_multisample_2d_array precision lowp sampler2DMS; precision lowp sampler2DMSArray; #endif #line 0 1 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, float shape) { if (shape == 0.0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 3 0 in vec3 Position; uniform mat4 ProjMat; uniform mat4 ModelViewMat; uniform float FogShape; out float vertexDistance; void main() { gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.00000); vertexDistance = fog_distance(ModelViewMat, Position, FogShape); } version string: 150New VGPU Shader source: #version 320 es #define texture2D texture #define attribute in #define varying out precision highp float; precision highp int; #line 0 1 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, int shape) { if (shape == 0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 3 0 uniform vec4 ColorModulator; uniform float FogStart; uniform float FogEnd; uniform vec4 FogColor; in float vertexDistance; out vec4 fragColor; void main() { fragColor = linear_fog(ColorModulator, vertexDistance, FogStart, FogEnd, FogColor); } New VGPU Shader conversion: #version 320 es #ifdef GL_OES_texture_storage_multisample_2d_array #extension GL_OES_texture_storage_multisample_2d_array : enable #endif #ifdef GL_EXT_texture_buffer #extension GL_EXT_texture_buffer : enable #endif #ifdef GL_EXT_texture_cube_map_array #extension GL_EXT_texture_cube_map_array : enable #endif #ifdef GL_EXT_shader_non_constant_global_initializers #extension GL_EXT_shader_non_constant_global_initializers : enable #endif precision highp float; precision lowp image2D; precision lowp image2DArray; precision lowp image3D; precision lowp imageCube; precision lowp sampler2D; precision lowp sampler3D; precision lowp sampler2DShadow; precision lowp samplerCubeShadow; precision lowp sampler2DArray; precision lowp sampler2DArrayShadow; precision lowp samplerCube; #ifdef GL_EXT_texture_buffer precision lowp samplerBuffer; precision lowp imageBuffer; #endif #ifdef GL_EXT_texture_cube_map_array precision lowp imageCubeArray; precision lowp samplerCubeArray; precision lowp samplerCubeArrayShadow; #endif #ifdef GL_OES_texture_storage_multisample_2d_array precision lowp sampler2DMS; precision lowp sampler2DMSArray; #endif #line 0 1 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, float shape) { if (shape == 0.0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 3 0 uniform vec4 ColorModulator; uniform float FogStart; uniform float FogEnd; uniform vec4 FogColor; in float vertexDistance; out vec4 fragColor; void main() { fragColor = linear_fog(ColorModulator, vertexDistance, FogStart, FogEnd, FogColor); } version string: 150New VGPU Shader source: #version 320 es #define texture2D texture #define attribute in #define varying out precision highp float; precision highp int; in vec3 Position; in vec4 Color; uniform mat4 ModelViewMat; uniform mat4 ProjMat; out vec4 vertexColor; void main() { gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.00000); vertexColor = Color; } New VGPU Shader conversion: #version 320 es #ifdef GL_OES_texture_storage_multisample_2d_array #extension GL_OES_texture_storage_multisample_2d_array : enable #endif #ifdef GL_EXT_texture_buffer #extension GL_EXT_texture_buffer : enable #endif #ifdef GL_EXT_texture_cube_map_array #extension GL_EXT_texture_cube_map_array : enable #endif #ifdef GL_EXT_shader_non_constant_global_initializers #extension GL_EXT_shader_non_constant_global_initializers : enable #endif precision highp float; precision lowp image2D; precision lowp image2DArray; precision lowp image3D; precision lowp imageCube; precision lowp sampler2D; precision lowp sampler3D; precision lowp sampler2DShadow; precision lowp samplerCubeShadow; precision lowp sampler2DArray; precision lowp sampler2DArrayShadow; precision lowp samplerCube; #ifdef GL_EXT_texture_buffer precision lowp samplerBuffer; precision lowp imageBuffer; #endif #ifdef GL_EXT_texture_cube_map_array precision lowp imageCubeArray; precision lowp samplerCubeArray; precision lowp samplerCubeArrayShadow; #endif #ifdef GL_OES_texture_storage_multisample_2d_array precision lowp sampler2DMS; precision lowp sampler2DMSArray; #endif in vec3 Position; in vec4 Color; uniform mat4 ModelViewMat; uniform mat4 ProjMat; out vec4 vertexColor; void main() { gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.00000); vertexColor = Color; } version string: 150New VGPU Shader source: #version 320 es #define texture2D texture #define attribute in #define varying out precision highp float; precision highp int; in vec4 vertexColor; uniform vec4 ColorModulator; out vec4 fragColor; void main() { vec4 color = vertexColor; if (color.a == 0.00000) { discard; } fragColor = color * ColorModulator; } New VGPU Shader conversion: #version 320 es #ifdef GL_OES_texture_storage_multisample_2d_array #extension GL_OES_texture_storage_multisample_2d_array : enable #endif #ifdef GL_EXT_texture_buffer #extension GL_EXT_texture_buffer : enable #endif #ifdef GL_EXT_texture_cube_map_array #extension GL_EXT_texture_cube_map_array : enable #endif #ifdef GL_EXT_shader_non_constant_global_initializers #extension GL_EXT_shader_non_constant_global_initializers : enable #endif precision highp float; precision lowp image2D; precision lowp image2DArray; precision lowp image3D; precision lowp imageCube; precision lowp sampler2D; precision lowp sampler3D; precision lowp sampler2DShadow; precision lowp samplerCubeShadow; precision lowp sampler2DArray; precision lowp sampler2DArrayShadow; precision lowp samplerCube; #ifdef GL_EXT_texture_buffer precision lowp samplerBuffer; precision lowp imageBuffer; #endif #ifdef GL_EXT_texture_cube_map_array precision lowp imageCubeArray; precision lowp samplerCubeArray; precision lowp samplerCubeArrayShadow; #endif #ifdef GL_OES_texture_storage_multisample_2d_array precision lowp sampler2DMS; precision lowp sampler2DMSArray; #endif in vec4 vertexColor; uniform vec4 ColorModulator; out vec4 fragColor; void main() { vec4 color = vertexColor; if (color.a == 0.00000) { discard; } fragColor = color * ColorModulator; } version string: 150New VGPU Shader source: #version 320 es #define texture2D texture #define attribute in #define varying out precision highp float; precision highp int; in vec3 Position; in vec4 Color; in vec2 UV2; uniform mat4 ModelViewMat; uniform mat4 ProjMat; out vec4 vertexColor; out vec2 texCoord2; void main() { gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.00000); vertexColor = Color; texCoord2 = UV2; } New VGPU Shader conversion: #version 320 es #ifdef GL_OES_texture_storage_multisample_2d_array #extension GL_OES_texture_storage_multisample_2d_array : enable #endif #ifdef GL_EXT_texture_buffer #extension GL_EXT_texture_buffer : enable #endif #ifdef GL_EXT_texture_cube_map_array #extension GL_EXT_texture_cube_map_array : enable #endif #ifdef GL_EXT_shader_non_constant_global_initializers #extension GL_EXT_shader_non_constant_global_initializers : enable #endif precision highp float; precision lowp image2D; precision lowp image2DArray; precision lowp image3D; precision lowp imageCube; precision lowp sampler2D; precision lowp sampler3D; precision lowp sampler2DShadow; precision lowp samplerCubeShadow; precision lowp sampler2DArray; precision lowp sampler2DArrayShadow; precision lowp samplerCube; #ifdef GL_EXT_texture_buffer precision lowp samplerBuffer; precision lowp imageBuffer; #endif #ifdef GL_EXT_texture_cube_map_array precision lowp imageCubeArray; precision lowp samplerCubeArray; precision lowp samplerCubeArrayShadow; #endif #ifdef GL_OES_texture_storage_multisample_2d_array precision lowp sampler2DMS; precision lowp sampler2DMSArray; #endif in vec3 Position; in vec4 Color; in vec2 UV2; uniform mat4 ModelViewMat; uniform mat4 ProjMat; out vec4 vertexColor; out vec2 texCoord2; void main() { gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.00000); vertexColor = Color; texCoord2 = UV2; } version string: 150New VGPU Shader source: #version 320 es #define texture2D texture #define attribute in #define varying out precision highp float; precision highp int; uniform sampler2D Sampler2; uniform vec4 ColorModulator; in vec4 vertexColor; in vec2 texCoord2; out vec4 fragColor; void main() { vec4 color = texture(Sampler2, texCoord2) * vertexColor; fragColor = color * ColorModulator; } New VGPU Shader conversion: #version 320 es #ifdef GL_OES_texture_storage_multisample_2d_array #extension GL_OES_texture_storage_multisample_2d_array : enable #endif #ifdef GL_EXT_texture_buffer #extension GL_EXT_texture_buffer : enable #endif #ifdef GL_EXT_texture_cube_map_array #extension GL_EXT_texture_cube_map_array : enable #endif #ifdef GL_EXT_shader_non_constant_global_initializers #extension GL_EXT_shader_non_constant_global_initializers : enable #endif precision highp float; precision lowp image2D; precision lowp image2DArray; precision lowp image3D; precision lowp imageCube; precision lowp sampler2D; precision lowp sampler3D; precision lowp sampler2DShadow; precision lowp samplerCubeShadow; precision lowp sampler2DArray; precision lowp sampler2DArrayShadow; precision lowp samplerCube; #ifdef GL_EXT_texture_buffer precision lowp samplerBuffer; precision lowp imageBuffer; #endif #ifdef GL_EXT_texture_cube_map_array precision lowp imageCubeArray; precision lowp samplerCubeArray; precision lowp samplerCubeArrayShadow; #endif #ifdef GL_OES_texture_storage_multisample_2d_array precision lowp sampler2DMS; precision lowp sampler2DMSArray; #endif uniform sampler2D Sampler2; uniform vec4 ColorModulator; in vec4 vertexColor; in vec2 texCoord2; out vec4 fragColor; void main() { vec4 color = texture(Sampler2, texCoord2) * vertexColor; fragColor = color * ColorModulator; } version string: 150New VGPU Shader source: #version 320 es #define texture2D texture #define attribute in #define varying out precision highp float; precision highp int; in vec3 Position; in vec4 Color; in vec2 UV0; uniform mat4 ModelViewMat; uniform mat4 ProjMat; out vec4 vertexColor; out vec2 texCoord0; void main() { gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.00000); vertexColor = Color; texCoord0 = UV0; } New VGPU Shader conversion: #version 320 es #ifdef GL_OES_texture_storage_multisample_2d_array #extension GL_OES_texture_storage_multisample_2d_array : enable #endif #ifdef GL_EXT_texture_buffer #extension GL_EXT_texture_buffer : enable #endif #ifdef GL_EXT_texture_cube_map_array #extension GL_EXT_texture_cube_map_array : enable #endif #ifdef GL_EXT_shader_non_constant_global_initializers #extension GL_EXT_shader_non_constant_global_initializers : enable #endif precision highp float; precision lowp image2D; precision lowp image2DArray; precision lowp image3D; precision lowp imageCube; precision lowp sampler2D; precision lowp sampler3D; precision lowp sampler2DShadow; precision lowp samplerCubeShadow; precision lowp sampler2DArray; precision lowp sampler2DArrayShadow; precision lowp samplerCube; #ifdef GL_EXT_texture_buffer precision lowp samplerBuffer; precision lowp imageBuffer; #endif #ifdef GL_EXT_texture_cube_map_array precision lowp imageCubeArray; precision lowp samplerCubeArray; precision lowp samplerCubeArrayShadow; #endif #ifdef GL_OES_texture_storage_multisample_2d_array precision lowp sampler2DMS; precision lowp sampler2DMSArray; #endif in vec3 Position; in vec4 Color; in vec2 UV0; uniform mat4 ModelViewMat; uniform mat4 ProjMat; out vec4 vertexColor; out vec2 texCoord0; void main() { gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.00000); vertexColor = Color; texCoord0 = UV0; } version string: 150New VGPU Shader source: #version 320 es #define texture2D texture #define attribute in #define varying out precision highp float; precision highp int; uniform sampler2D Sampler0; uniform vec4 ColorModulator; in vec4 vertexColor; in vec2 texCoord0; out vec4 fragColor; void main() { vec4 color = texture(Sampler0, texCoord0) * vertexColor; if (color.a < 0.100000) { discard; } fragColor = color * ColorModulator; } New VGPU Shader conversion: #version 320 es #ifdef GL_OES_texture_storage_multisample_2d_array #extension GL_OES_texture_storage_multisample_2d_array : enable #endif #ifdef GL_EXT_texture_buffer #extension GL_EXT_texture_buffer : enable #endif #ifdef GL_EXT_texture_cube_map_array #extension GL_EXT_texture_cube_map_array : enable #endif #ifdef GL_EXT_shader_non_constant_global_initializers #extension GL_EXT_shader_non_constant_global_initializers : enable #endif precision highp float; precision lowp image2D; precision lowp image2DArray; precision lowp image3D; precision lowp imageCube; precision lowp sampler2D; precision lowp sampler3D; precision lowp sampler2DShadow; precision lowp samplerCubeShadow; precision lowp sampler2DArray; precision lowp sampler2DArrayShadow; precision lowp samplerCube; #ifdef GL_EXT_texture_buffer precision lowp samplerBuffer; precision lowp imageBuffer; #endif #ifdef GL_EXT_texture_cube_map_array precision lowp imageCubeArray; precision lowp samplerCubeArray; precision lowp samplerCubeArrayShadow; #endif #ifdef GL_OES_texture_storage_multisample_2d_array precision lowp sampler2DMS; precision lowp sampler2DMSArray; #endif uniform sampler2D Sampler0; uniform vec4 ColorModulator; in vec4 vertexColor; in vec2 texCoord0; out vec4 fragColor; void main() { vec4 color = texture(Sampler0, texCoord0) * vertexColor; if (color.a < 0.100000) { discard; } fragColor = color * ColorModulator; } version string: 150New VGPU Shader source: #version 320 es #define texture2D texture #define attribute in #define varying out precision highp float; precision highp int; in vec3 Position; in vec4 Color; in vec2 UV0; in vec2 UV2; uniform mat4 ModelViewMat; uniform mat4 ProjMat; out vec4 vertexColor; out vec2 texCoord0; out vec2 texCoord2; void main() { gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.00000); vertexColor = Color; texCoord0 = UV0; texCoord2 = UV2; } New VGPU Shader conversion: #version 320 es #ifdef GL_OES_texture_storage_multisample_2d_array #extension GL_OES_texture_storage_multisample_2d_array : enable #endif #ifdef GL_EXT_texture_buffer #extension GL_EXT_texture_buffer : enable #endif #ifdef GL_EXT_texture_cube_map_array #extension GL_EXT_texture_cube_map_array : enable #endif #ifdef GL_EXT_shader_non_constant_global_initializers #extension GL_EXT_shader_non_constant_global_initializers : enable #endif precision highp float; precision lowp image2D; precision lowp image2DArray; precision lowp image3D; precision lowp imageCube; precision lowp sampler2D; precision lowp sampler3D; precision lowp sampler2DShadow; precision lowp samplerCubeShadow; precision lowp sampler2DArray; precision lowp sampler2DArrayShadow; precision lowp samplerCube; #ifdef GL_EXT_texture_buffer precision lowp samplerBuffer; precision lowp imageBuffer; #endif #ifdef GL_EXT_texture_cube_map_array precision lowp imageCubeArray; precision lowp samplerCubeArray; precision lowp samplerCubeArrayShadow; #endif #ifdef GL_OES_texture_storage_multisample_2d_array precision lowp sampler2DMS; precision lowp sampler2DMSArray; #endif in vec3 Position; in vec4 Color; in vec2 UV0; in vec2 UV2; uniform mat4 ModelViewMat; uniform mat4 ProjMat; out vec4 vertexColor; out vec2 texCoord0; out vec2 texCoord2; void main() { gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.00000); vertexColor = Color; texCoord0 = UV0; texCoord2 = UV2; } version string: 150New VGPU Shader source: #version 320 es #define texture2D texture #define attribute in #define varying out precision highp float; precision highp int; uniform sampler2D Sampler0; uniform vec4 ColorModulator; in vec4 vertexColor; in vec2 texCoord0; in vec2 texCoord2; out vec4 fragColor; void main() { vec4 color = texture(Sampler0, texCoord0) * vertexColor; if (color.a < 0.100000) { discard; } fragColor = color * ColorModulator; } New VGPU Shader conversion: #version 320 es #ifdef GL_OES_texture_storage_multisample_2d_array #extension GL_OES_texture_storage_multisample_2d_array : enable #endif #ifdef GL_EXT_texture_buffer #extension GL_EXT_texture_buffer : enable #endif #ifdef GL_EXT_texture_cube_map_array #extension GL_EXT_texture_cube_map_array : enable #endif #ifdef GL_EXT_shader_non_constant_global_initializers #extension GL_EXT_shader_non_constant_global_initializers : enable #endif precision highp float; precision lowp image2D; precision lowp image2DArray; precision lowp image3D; precision lowp imageCube; precision lowp sampler2D; precision lowp sampler3D; precision lowp sampler2DShadow; precision lowp samplerCubeShadow; precision lowp sampler2DArray; precision lowp sampler2DArrayShadow; precision lowp samplerCube; #ifdef GL_EXT_texture_buffer precision lowp samplerBuffer; precision lowp imageBuffer; #endif #ifdef GL_EXT_texture_cube_map_array precision lowp imageCubeArray; precision lowp samplerCubeArray; precision lowp samplerCubeArrayShadow; #endif #ifdef GL_OES_texture_storage_multisample_2d_array precision lowp sampler2DMS; precision lowp sampler2DMSArray; #endif uniform sampler2D Sampler0; uniform vec4 ColorModulator; in vec4 vertexColor; in vec2 texCoord0; in vec2 texCoord2; out vec4 fragColor; void main() { vec4 color = texture(Sampler0, texCoord0) * vertexColor; if (color.a < 0.100000) { discard; } fragColor = color * ColorModulator; } version string: 150New VGPU Shader source: #version 320 es #define texture2D texture #define attribute in #define varying out precision highp float; precision highp int; in vec3 Position; in vec2 UV0; uniform mat4 ModelViewMat; uniform mat4 ProjMat; out vec2 texCoord0; void main() { gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.00000); texCoord0 = UV0; } New VGPU Shader conversion: #version 320 es #ifdef GL_OES_texture_storage_multisample_2d_array #extension GL_OES_texture_storage_multisample_2d_array : enable #endif #ifdef GL_EXT_texture_buffer #extension GL_EXT_texture_buffer : enable #endif #ifdef GL_EXT_texture_cube_map_array #extension GL_EXT_texture_cube_map_array : enable #endif #ifdef GL_EXT_shader_non_constant_global_initializers #extension GL_EXT_shader_non_constant_global_initializers : enable #endif precision highp float; precision lowp image2D; precision lowp image2DArray; precision lowp image3D; precision lowp imageCube; precision lowp sampler2D; precision lowp sampler3D; precision lowp sampler2DShadow; precision lowp samplerCubeShadow; precision lowp sampler2DArray; precision lowp sampler2DArrayShadow; precision lowp samplerCube; #ifdef GL_EXT_texture_buffer precision lowp samplerBuffer; precision lowp imageBuffer; #endif #ifdef GL_EXT_texture_cube_map_array precision lowp imageCubeArray; precision lowp samplerCubeArray; precision lowp samplerCubeArrayShadow; #endif #ifdef GL_OES_texture_storage_multisample_2d_array precision lowp sampler2DMS; precision lowp sampler2DMSArray; #endif in vec3 Position; in vec2 UV0; uniform mat4 ModelViewMat; uniform mat4 ProjMat; out vec2 texCoord0; void main() { gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.00000); texCoord0 = UV0; } version string: 150New VGPU Shader source: #version 320 es #define texture2D texture #define attribute in #define varying out precision highp float; precision highp int; uniform sampler2D Sampler0; uniform vec4 ColorModulator; in vec2 texCoord0; out vec4 fragColor; void main() { vec4 color = texture(Sampler0, texCoord0); if (color.a == 0.00000) { discard; } fragColor = color * ColorModulator; } New VGPU Shader conversion: #version 320 es #ifdef GL_OES_texture_storage_multisample_2d_array #extension GL_OES_texture_storage_multisample_2d_array : enable #endif #ifdef GL_EXT_texture_buffer #extension GL_EXT_texture_buffer : enable #endif #ifdef GL_EXT_texture_cube_map_array #extension GL_EXT_texture_cube_map_array : enable #endif #ifdef GL_EXT_shader_non_constant_global_initializers #extension GL_EXT_shader_non_constant_global_initializers : enable #endif precision highp float; precision lowp image2D; precision lowp image2DArray; precision lowp image3D; precision lowp imageCube; precision lowp sampler2D; precision lowp sampler3D; precision lowp sampler2DShadow; precision lowp samplerCubeShadow; precision lowp sampler2DArray; precision lowp sampler2DArrayShadow; precision lowp samplerCube; #ifdef GL_EXT_texture_buffer precision lowp samplerBuffer; precision lowp imageBuffer; #endif #ifdef GL_EXT_texture_cube_map_array precision lowp imageCubeArray; precision lowp samplerCubeArray; precision lowp samplerCubeArrayShadow; #endif #ifdef GL_OES_texture_storage_multisample_2d_array precision lowp sampler2DMS; precision lowp sampler2DMSArray; #endif uniform sampler2D Sampler0; uniform vec4 ColorModulator; in vec2 texCoord0; out vec4 fragColor; void main() { vec4 color = texture(Sampler0, texCoord0); if (color.a == 0.00000) { discard; } fragColor = color * ColorModulator; } version string: 150New VGPU Shader source: #version 320 es #define texture2D texture #define attribute in #define varying out precision highp float; precision highp int; in vec3 Position; in vec2 UV0; in vec4 Color; uniform mat4 ModelViewMat; uniform mat4 ProjMat; out vec2 texCoord0; out vec4 vertexColor; void main() { gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.00000); texCoord0 = UV0; vertexColor = Color; } New VGPU Shader conversion: #version 320 es #ifdef GL_OES_texture_storage_multisample_2d_array #extension GL_OES_texture_storage_multisample_2d_array : enable #endif #ifdef GL_EXT_texture_buffer #extension GL_EXT_texture_buffer : enable #endif #ifdef GL_EXT_texture_cube_map_array #extension GL_EXT_texture_cube_map_array : enable #endif #ifdef GL_EXT_shader_non_constant_global_initializers #extension GL_EXT_shader_non_constant_global_initializers : enable #endif precision highp float; precision lowp image2D; precision lowp image2DArray; precision lowp image3D; precision lowp imageCube; precision lowp sampler2D; precision lowp sampler3D; precision lowp sampler2DShadow; precision lowp samplerCubeShadow; precision lowp sampler2DArray; precision lowp sampler2DArrayShadow; precision lowp samplerCube; #ifdef GL_EXT_texture_buffer precision lowp samplerBuffer; precision lowp imageBuffer; #endif #ifdef GL_EXT_texture_cube_map_array precision lowp imageCubeArray; precision lowp samplerCubeArray; precision lowp samplerCubeArrayShadow; #endif #ifdef GL_OES_texture_storage_multisample_2d_array precision lowp sampler2DMS; precision lowp sampler2DMSArray; #endif in vec3 Position; in vec2 UV0; in vec4 Color; uniform mat4 ModelViewMat; uniform mat4 ProjMat; out vec2 texCoord0; out vec4 vertexColor; void main() { gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.00000); texCoord0 = UV0; vertexColor = Color; } version string: 150New VGPU Shader source: #version 320 es #define texture2D texture #define attribute in #define varying out precision highp float; precision highp int; uniform sampler2D Sampler0; uniform vec4 ColorModulator; in vec2 texCoord0; in vec4 vertexColor; out vec4 fragColor; void main() { vec4 color = texture(Sampler0, texCoord0) * vertexColor; if (color.a < 0.100000) { discard; } fragColor = color * ColorModulator; } New VGPU Shader conversion: #version 320 es #ifdef GL_OES_texture_storage_multisample_2d_array #extension GL_OES_texture_storage_multisample_2d_array : enable #endif #ifdef GL_EXT_texture_buffer #extension GL_EXT_texture_buffer : enable #endif #ifdef GL_EXT_texture_cube_map_array #extension GL_EXT_texture_cube_map_array : enable #endif #ifdef GL_EXT_shader_non_constant_global_initializers #extension GL_EXT_shader_non_constant_global_initializers : enable #endif precision highp float; precision lowp image2D; precision lowp image2DArray; precision lowp image3D; precision lowp imageCube; precision lowp sampler2D; precision lowp sampler3D; precision lowp sampler2DShadow; precision lowp samplerCubeShadow; precision lowp sampler2DArray; precision lowp sampler2DArrayShadow; precision lowp samplerCube; #ifdef GL_EXT_texture_buffer precision lowp samplerBuffer; precision lowp imageBuffer; #endif #ifdef GL_EXT_texture_cube_map_array precision lowp imageCubeArray; precision lowp samplerCubeArray; precision lowp samplerCubeArrayShadow; #endif #ifdef GL_OES_texture_storage_multisample_2d_array precision lowp sampler2DMS; precision lowp sampler2DMSArray; #endif uniform sampler2D Sampler0; uniform vec4 ColorModulator; in vec2 texCoord0; in vec4 vertexColor; out vec4 fragColor; void main() { vec4 color = texture(Sampler0, texCoord0) * vertexColor; if (color.a < 0.100000) { discard; } fragColor = color * ColorModulator; } version string: 150New VGPU Shader source: #version 320 es #define texture2D texture #define attribute in #define varying out precision highp float; precision highp int; #line 0 1 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, int shape) { if (shape == 0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 3 0 in vec3 Position; in vec2 UV0; in vec4 Color; in vec3 Normal; uniform mat4 ModelViewMat; uniform mat4 ProjMat; uniform int FogShape; out vec2 texCoord0; out float vertexDistance; out vec4 vertexColor; out vec4 normal; void main() { gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.00000); texCoord0 = UV0; vertexDistance = fog_distance(ModelViewMat, Position, FogShape); vertexColor = Color; normal = ProjMat * ModelViewMat * vec4(Normal, 0.00000); } New VGPU Shader conversion: #version 320 es #ifdef GL_OES_texture_storage_multisample_2d_array #extension GL_OES_texture_storage_multisample_2d_array : enable #endif #ifdef GL_EXT_texture_buffer #extension GL_EXT_texture_buffer : enable #endif #ifdef GL_EXT_texture_cube_map_array #extension GL_EXT_texture_cube_map_array : enable #endif #ifdef GL_EXT_shader_non_constant_global_initializers #extension GL_EXT_shader_non_constant_global_initializers : enable #endif precision highp float; precision lowp image2D; precision lowp image2DArray; precision lowp image3D; precision lowp imageCube; precision lowp sampler2D; precision lowp sampler3D; precision lowp sampler2DShadow; precision lowp samplerCubeShadow; precision lowp sampler2DArray; precision lowp sampler2DArrayShadow; precision lowp samplerCube; #ifdef GL_EXT_texture_buffer precision lowp samplerBuffer; precision lowp imageBuffer; #endif #ifdef GL_EXT_texture_cube_map_array precision lowp imageCubeArray; precision lowp samplerCubeArray; precision lowp samplerCubeArrayShadow; #endif #ifdef GL_OES_texture_storage_multisample_2d_array precision lowp sampler2DMS; precision lowp sampler2DMSArray; #endif #line 0 1 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, float shape) { if (shape == 0.0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 3 0 in vec3 Position; in vec2 UV0; in vec4 Color; in vec3 Normal; uniform mat4 ModelViewMat; uniform mat4 ProjMat; uniform float FogShape; out vec2 texCoord0; out float vertexDistance; out vec4 vertexColor; out vec4 normal; void main() { gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.00000); texCoord0 = UV0; vertexDistance = fog_distance(ModelViewMat, Position, FogShape); vertexColor = Color; normal = ProjMat * ModelViewMat * vec4(Normal, 0.00000); } version string: 150New VGPU Shader source: #version 320 es #define texture2D texture #define attribute in #define varying out precision highp float; precision highp int; #line 0 1 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, int shape) { if (shape == 0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 3 0 uniform sampler2D Sampler0; uniform vec4 ColorModulator; uniform float FogStart; uniform float FogEnd; uniform vec4 FogColor; in vec2 texCoord0; in float vertexDistance; in vec4 vertexColor; in vec4 normal; out vec4 fragColor; void main() { vec4 color = texture(Sampler0, texCoord0) * vertexColor * ColorModulator; if (color.a < 0.100000) { discard; } fragColor = linear_fog(color, vertexDistance, FogStart, FogEnd, FogColor); } New VGPU Shader conversion: #version 320 es #ifdef GL_OES_texture_storage_multisample_2d_array #extension GL_OES_texture_storage_multisample_2d_array : enable #endif #ifdef GL_EXT_texture_buffer #extension GL_EXT_texture_buffer : enable #endif #ifdef GL_EXT_texture_cube_map_array #extension GL_EXT_texture_cube_map_array : enable #endif #ifdef GL_EXT_shader_non_constant_global_initializers #extension GL_EXT_shader_non_constant_global_initializers : enable #endif precision highp float; precision lowp image2D; precision lowp image2DArray; precision lowp image3D; precision lowp imageCube; precision lowp sampler2D; precision lowp sampler3D; precision lowp sampler2DShadow; precision lowp samplerCubeShadow; precision lowp sampler2DArray; precision lowp sampler2DArrayShadow; precision lowp samplerCube; #ifdef GL_EXT_texture_buffer precision lowp samplerBuffer; precision lowp imageBuffer; #endif #ifdef GL_EXT_texture_cube_map_array precision lowp imageCubeArray; precision lowp samplerCubeArray; precision lowp samplerCubeArrayShadow; #endif #ifdef GL_OES_texture_storage_multisample_2d_array precision lowp sampler2DMS; precision lowp sampler2DMSArray; #endif #line 0 1 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, float shape) { if (shape == 0.0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 3 0 uniform sampler2D Sampler0; uniform vec4 ColorModulator; uniform float FogStart; uniform float FogEnd; uniform vec4 FogColor; in vec2 texCoord0; in float vertexDistance; in vec4 vertexColor; in vec4 normal; out vec4 fragColor; void main() { vec4 color = texture(Sampler0, texCoord0) * vertexColor * ColorModulator; if (color.a < 0.100000) { discard; } fragColor = linear_fog(color, vertexDistance, FogStart, FogEnd, FogColor); } version string: 150New VGPU Shader source: #version 320 es #define texture2D texture #define attribute in #define varying out precision highp float; precision highp int; in vec3 Position; in vec2 UV0; in vec2 UV2; in vec4 Color; uniform mat4 ModelViewMat; uniform mat4 ProjMat; out vec2 texCoord0; out vec2 texCoord2; out vec4 vertexColor; void main() { gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.00000); texCoord0 = UV0; texCoord2 = UV2; vertexColor = Color; } New VGPU Shader conversion: #version 320 es #ifdef GL_OES_texture_storage_multisample_2d_array #extension GL_OES_texture_storage_multisample_2d_array : enable #endif #ifdef GL_EXT_texture_buffer #extension GL_EXT_texture_buffer : enable #endif #ifdef GL_EXT_texture_cube_map_array #extension GL_EXT_texture_cube_map_array : enable #endif #ifdef GL_EXT_shader_non_constant_global_initializers #extension GL_EXT_shader_non_constant_global_initializers : enable #endif precision highp float; precision lowp image2D; precision lowp image2DArray; precision lowp image3D; precision lowp imageCube; precision lowp sampler2D; precision lowp sampler3D; precision lowp sampler2DShadow; precision lowp samplerCubeShadow; precision lowp sampler2DArray; precision lowp sampler2DArrayShadow; precision lowp samplerCube; #ifdef GL_EXT_texture_buffer precision lowp samplerBuffer; precision lowp imageBuffer; #endif #ifdef GL_EXT_texture_cube_map_array precision lowp imageCubeArray; precision lowp samplerCubeArray; precision lowp samplerCubeArrayShadow; #endif #ifdef GL_OES_texture_storage_multisample_2d_array precision lowp sampler2DMS; precision lowp sampler2DMSArray; #endif in vec3 Position; in vec2 UV0; in vec2 UV2; in vec4 Color; uniform mat4 ModelViewMat; uniform mat4 ProjMat; out vec2 texCoord0; out vec2 texCoord2; out vec4 vertexColor; void main() { gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.00000); texCoord0 = UV0; texCoord2 = UV2; vertexColor = Color; } version string: 150New VGPU Shader source: #version 320 es #define texture2D texture #define attribute in #define varying out precision highp float; precision highp int; uniform sampler2D Sampler0; uniform vec4 ColorModulator; in vec2 texCoord0; in vec2 texCoord2; in vec4 vertexColor; out vec4 fragColor; void main() { vec4 color = texture(Sampler0, texCoord0) * vertexColor; if (color.a < 0.100000) { discard; } fragColor = color * ColorModulator; } New VGPU Shader conversion: #version 320 es #ifdef GL_OES_texture_storage_multisample_2d_array #extension GL_OES_texture_storage_multisample_2d_array : enable #endif #ifdef GL_EXT_texture_buffer #extension GL_EXT_texture_buffer : enable #endif #ifdef GL_EXT_texture_cube_map_array #extension GL_EXT_texture_cube_map_array : enable #endif #ifdef GL_EXT_shader_non_constant_global_initializers #extension GL_EXT_shader_non_constant_global_initializers : enable #endif precision highp float; precision lowp image2D; precision lowp image2DArray; precision lowp image3D; precision lowp imageCube; precision lowp sampler2D; precision lowp sampler3D; precision lowp sampler2DShadow; precision lowp samplerCubeShadow; precision lowp sampler2DArray; precision lowp sampler2DArrayShadow; precision lowp samplerCube; #ifdef GL_EXT_texture_buffer precision lowp samplerBuffer; precision lowp imageBuffer; #endif #ifdef GL_EXT_texture_cube_map_array precision lowp imageCubeArray; precision lowp samplerCubeArray; precision lowp samplerCubeArrayShadow; #endif #ifdef GL_OES_texture_storage_multisample_2d_array precision lowp sampler2DMS; precision lowp sampler2DMSArray; #endif uniform sampler2D Sampler0; uniform vec4 ColorModulator; in vec2 texCoord0; in vec2 texCoord2; in vec4 vertexColor; out vec4 fragColor; void main() { vec4 color = texture(Sampler0, texCoord0) * vertexColor; if (color.a < 0.100000) { discard; } fragColor = color * ColorModulator; } version string: 150New VGPU Shader source: #version 320 es #define texture2D texture #define attribute in #define varying out precision highp float; precision highp int; #line 0 1 #define MINECRAFT_LIGHT_POWER (0.6) #define MINECRAFT_AMBIENT_LIGHT (0.4) vec4 minecraft_mix_light(vec3 lightDir0, vec3 lightDir1, vec3 normal, vec4 color) { lightDir0 = normalize(lightDir0); lightDir1 = normalize(lightDir1); float light0 = max(0.00000, dot(lightDir0, normal)); float light1 = max(0.00000, dot(lightDir1, normal)); float lightAccum = min(1.00000, (light0 + light1) * MINECRAFT_LIGHT_POWER + MINECRAFT_AMBIENT_LIGHT); return vec4(color.rgb * lightAccum, color.a); } vec4 minecraft_sample_lightmap(sampler2D lightMap, ivec2 uv) { return texture(lightMap, clamp(uv / 256.000, vec2(0.500000 / 16.0000), vec2(15.5000 / 16.0000))); } #line 0 2 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, int shape) { if (shape == 0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 4 0 in vec3 Position; in vec4 Color; in vec2 UV0; in ivec2 UV2; in vec3 Normal; uniform sampler2D Sampler2; uniform mat4 ModelViewMat; uniform mat4 ProjMat; uniform vec3 ChunkOffset; uniform int FogShape; out float vertexDistance; out vec4 vertexColor; out vec2 texCoord0; out vec4 normal; void main() { vec3 pos = Position + ChunkOffset; gl_Position = ProjMat * ModelViewMat * vec4(pos, 1.00000); vertexDistance = fog_distance(ModelViewMat, pos, FogShape); vertexColor = Color * minecraft_sample_lightmap(Sampler2, UV2); texCoord0 = UV0; normal = ProjMat * ModelViewMat * vec4(Normal, 0.00000); } New VGPU Shader conversion: #version 320 es #ifdef GL_OES_texture_storage_multisample_2d_array #extension GL_OES_texture_storage_multisample_2d_array : enable #endif #ifdef GL_EXT_texture_buffer #extension GL_EXT_texture_buffer : enable #endif #ifdef GL_EXT_texture_cube_map_array #extension GL_EXT_texture_cube_map_array : enable #endif #ifdef GL_EXT_shader_non_constant_global_initializers #extension GL_EXT_shader_non_constant_global_initializers : enable #endif precision highp float; precision lowp image2D; precision lowp image2DArray; precision lowp image3D; precision lowp imageCube; precision lowp sampler2D; precision lowp sampler3D; precision lowp sampler2DShadow; precision lowp samplerCubeShadow; precision lowp sampler2DArray; precision lowp sampler2DArrayShadow; precision lowp samplerCube; #ifdef GL_EXT_texture_buffer precision lowp samplerBuffer; precision lowp imageBuffer; #endif #ifdef GL_EXT_texture_cube_map_array precision lowp imageCubeArray; precision lowp samplerCubeArray; precision lowp samplerCubeArrayShadow; #endif #ifdef GL_OES_texture_storage_multisample_2d_array precision lowp sampler2DMS; precision lowp sampler2DMSArray; #endif #line 0 1 #define MINECRAFT_LIGHT_POWER (0.6) #define MINECRAFT_AMBIENT_LIGHT (0.4) vec4 minecraft_mix_light(vec3 lightDir0, vec3 lightDir1, vec3 normal, vec4 color) { lightDir0 = normalize(lightDir0); lightDir1 = normalize(lightDir1); float light0 = max(0.00000, dot(lightDir0, normal)); float light1 = max(0.00000, dot(lightDir1, normal)); float lightAccum = min(1.00000, (light0 + light1) * MINECRAFT_LIGHT_POWER + MINECRAFT_AMBIENT_LIGHT); return vec4(color.rgb * lightAccum, color.a); } vec4 minecraft_sample_lightmap(sampler2D lightMap, vec2 uv) { return texture(lightMap, clamp(uv / 256.000, vec2(0.500000 / 16.0000), vec2(15.5000 / 16.0000))); } #line 0 2 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, float shape) { if (shape == 0.0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 4 0 in vec3 Position; in vec4 Color; in vec2 UV0; in vec2 UV2; in vec3 Normal; uniform sampler2D Sampler2; uniform mat4 ModelViewMat; uniform mat4 ProjMat; uniform vec3 ChunkOffset; uniform float FogShape; out float vertexDistance; out vec4 vertexColor; out vec2 texCoord0; out vec4 normal; void main() { vec3 pos = Position + ChunkOffset; gl_Position = ProjMat * ModelViewMat * vec4(pos, 1.00000); vertexDistance = fog_distance(ModelViewMat, pos, FogShape); vertexColor = Color * minecraft_sample_lightmap(Sampler2, UV2); texCoord0 = UV0; normal = ProjMat * ModelViewMat * vec4(Normal, 0.00000); } version string: 150New VGPU Shader source: #version 320 es #define texture2D texture #define attribute in #define varying out precision highp float; precision highp int; #line 0 1 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, int shape) { if (shape == 0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 3 0 uniform sampler2D Sampler0; uniform vec4 ColorModulator; uniform float FogStart; uniform float FogEnd; uniform vec4 FogColor; in float vertexDistance; in vec4 vertexColor; in vec2 texCoord0; in vec4 normal; out vec4 fragColor; void main() { vec4 color = texture(Sampler0, texCoord0) * vertexColor * ColorModulator; fragColor = linear_fog(color, vertexDistance, FogStart, FogEnd, FogColor); } New VGPU Shader conversion: #version 320 es #ifdef GL_OES_texture_storage_multisample_2d_array #extension GL_OES_texture_storage_multisample_2d_array : enable #endif #ifdef GL_EXT_texture_buffer #extension GL_EXT_texture_buffer : enable #endif #ifdef GL_EXT_texture_cube_map_array #extension GL_EXT_texture_cube_map_array : enable #endif #ifdef GL_EXT_shader_non_constant_global_initializers #extension GL_EXT_shader_non_constant_global_initializers : enable #endif precision highp float; precision lowp image2D; precision lowp image2DArray; precision lowp image3D; precision lowp imageCube; precision lowp sampler2D; precision lowp sampler3D; precision lowp sampler2DShadow; precision lowp samplerCubeShadow; precision lowp sampler2DArray; precision lowp sampler2DArrayShadow; precision lowp samplerCube; #ifdef GL_EXT_texture_buffer precision lowp samplerBuffer; precision lowp imageBuffer; #endif #ifdef GL_EXT_texture_cube_map_array precision lowp imageCubeArray; precision lowp samplerCubeArray; precision lowp samplerCubeArrayShadow; #endif #ifdef GL_OES_texture_storage_multisample_2d_array precision lowp sampler2DMS; precision lowp sampler2DMSArray; #endif #line 0 1 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, float shape) { if (shape == 0.0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 3 0 uniform sampler2D Sampler0; uniform vec4 ColorModulator; uniform float FogStart; uniform float FogEnd; uniform vec4 FogColor; in float vertexDistance; in vec4 vertexColor; in vec2 texCoord0; in vec4 normal; out vec4 fragColor; void main() { vec4 color = texture(Sampler0, texCoord0) * vertexColor * ColorModulator; fragColor = linear_fog(color, vertexDistance, FogStart, FogEnd, FogColor); } version string: 150New VGPU Shader source: #version 320 es #define texture2D texture #define attribute in #define varying out precision highp float; precision highp int; #line 0 1 #define MINECRAFT_LIGHT_POWER (0.6) #define MINECRAFT_AMBIENT_LIGHT (0.4) vec4 minecraft_mix_light(vec3 lightDir0, vec3 lightDir1, vec3 normal, vec4 color) { lightDir0 = normalize(lightDir0); lightDir1 = normalize(lightDir1); float light0 = max(0.00000, dot(lightDir0, normal)); float light1 = max(0.00000, dot(lightDir1, normal)); float lightAccum = min(1.00000, (light0 + light1) * MINECRAFT_LIGHT_POWER + MINECRAFT_AMBIENT_LIGHT); return vec4(color.rgb * lightAccum, color.a); } vec4 minecraft_sample_lightmap(sampler2D lightMap, ivec2 uv) { return texture(lightMap, clamp(uv / 256.000, vec2(0.500000 / 16.0000), vec2(15.5000 / 16.0000))); } #line 0 2 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, int shape) { if (shape == 0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 4 0 in vec3 Position; in vec4 Color; in vec2 UV0; in ivec2 UV2; in vec3 Normal; uniform sampler2D Sampler2; uniform mat4 ModelViewMat; uniform mat4 ProjMat; uniform vec3 ChunkOffset; uniform int FogShape; out float vertexDistance; out vec4 vertexColor; out vec2 texCoord0; out vec4 normal; void main() { vec3 pos = Position + ChunkOffset; gl_Position = ProjMat * ModelViewMat * vec4(pos, 1.00000); vertexDistance = fog_distance(ModelViewMat, pos, FogShape); vertexColor = Color * minecraft_sample_lightmap(Sampler2, UV2); texCoord0 = UV0; normal = ProjMat * ModelViewMat * vec4(Normal, 0.00000); } New VGPU Shader conversion: #version 320 es #ifdef GL_OES_texture_storage_multisample_2d_array #extension GL_OES_texture_storage_multisample_2d_array : enable #endif #ifdef GL_EXT_texture_buffer #extension GL_EXT_texture_buffer : enable #endif #ifdef GL_EXT_texture_cube_map_array #extension GL_EXT_texture_cube_map_array : enable #endif #ifdef GL_EXT_shader_non_constant_global_initializers #extension GL_EXT_shader_non_constant_global_initializers : enable #endif precision highp float; precision lowp image2D; precision lowp image2DArray; precision lowp image3D; precision lowp imageCube; precision lowp sampler2D; precision lowp sampler3D; precision lowp sampler2DShadow; precision lowp samplerCubeShadow; precision lowp sampler2DArray; precision lowp sampler2DArrayShadow; precision lowp samplerCube; #ifdef GL_EXT_texture_buffer precision lowp samplerBuffer; precision lowp imageBuffer; #endif #ifdef GL_EXT_texture_cube_map_array precision lowp imageCubeArray; precision lowp samplerCubeArray; precision lowp samplerCubeArrayShadow; #endif #ifdef GL_OES_texture_storage_multisample_2d_array precision lowp sampler2DMS; precision lowp sampler2DMSArray; #endif #line 0 1 #define MINECRAFT_LIGHT_POWER (0.6) #define MINECRAFT_AMBIENT_LIGHT (0.4) vec4 minecraft_mix_light(vec3 lightDir0, vec3 lightDir1, vec3 normal, vec4 color) { lightDir0 = normalize(lightDir0); lightDir1 = normalize(lightDir1); float light0 = max(0.00000, dot(lightDir0, normal)); float light1 = max(0.00000, dot(lightDir1, normal)); float lightAccum = min(1.00000, (light0 + light1) * MINECRAFT_LIGHT_POWER + MINECRAFT_AMBIENT_LIGHT); return vec4(color.rgb * lightAccum, color.a); } vec4 minecraft_sample_lightmap(sampler2D lightMap, vec2 uv) { return texture(lightMap, clamp(uv / 256.000, vec2(0.500000 / 16.0000), vec2(15.5000 / 16.0000))); } #line 0 2 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, float shape) { if (shape == 0.0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 4 0 in vec3 Position; in vec4 Color; in vec2 UV0; in vec2 UV2; in vec3 Normal; uniform sampler2D Sampler2; uniform mat4 ModelViewMat; uniform mat4 ProjMat; uniform vec3 ChunkOffset; uniform float FogShape; out float vertexDistance; out vec4 vertexColor; out vec2 texCoord0; out vec4 normal; void main() { vec3 pos = Position + ChunkOffset; gl_Position = ProjMat * ModelViewMat * vec4(pos, 1.00000); vertexDistance = fog_distance(ModelViewMat, pos, FogShape); vertexColor = Color * minecraft_sample_lightmap(Sampler2, UV2); texCoord0 = UV0; normal = ProjMat * ModelViewMat * vec4(Normal, 0.00000); } version string: 150New VGPU Shader source: #version 320 es #define texture2D texture #define attribute in #define varying out precision highp float; precision highp int; #line 0 1 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, int shape) { if (shape == 0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 3 0 uniform sampler2D Sampler0; uniform vec4 ColorModulator; uniform float FogStart; uniform float FogEnd; uniform vec4 FogColor; in float vertexDistance; in vec4 vertexColor; in vec2 texCoord0; in vec4 normal; out vec4 fragColor; void main() { vec4 color = texture(Sampler0, texCoord0) * vertexColor * ColorModulator; if (color.a < 0.500000) { discard; } fragColor = linear_fog(color, vertexDistance, FogStart, FogEnd, FogColor); } New VGPU Shader conversion: #version 320 es #ifdef GL_OES_texture_storage_multisample_2d_array #extension GL_OES_texture_storage_multisample_2d_array : enable #endif #ifdef GL_EXT_texture_buffer #extension GL_EXT_texture_buffer : enable #endif #ifdef GL_EXT_texture_cube_map_array #extension GL_EXT_texture_cube_map_array : enable #endif #ifdef GL_EXT_shader_non_constant_global_initializers #extension GL_EXT_shader_non_constant_global_initializers : enable #endif precision highp float; precision lowp image2D; precision lowp image2DArray; precision lowp image3D; precision lowp imageCube; precision lowp sampler2D; precision lowp sampler3D; precision lowp sampler2DShadow; precision lowp samplerCubeShadow; precision lowp sampler2DArray; precision lowp sampler2DArrayShadow; precision lowp samplerCube; #ifdef GL_EXT_texture_buffer precision lowp samplerBuffer; precision lowp imageBuffer; #endif #ifdef GL_EXT_texture_cube_map_array precision lowp imageCubeArray; precision lowp samplerCubeArray; precision lowp samplerCubeArrayShadow; #endif #ifdef GL_OES_texture_storage_multisample_2d_array precision lowp sampler2DMS; precision lowp sampler2DMSArray; #endif #line 0 1 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, float shape) { if (shape == 0.0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 3 0 uniform sampler2D Sampler0; uniform vec4 ColorModulator; uniform float FogStart; uniform float FogEnd; uniform vec4 FogColor; in float vertexDistance; in vec4 vertexColor; in vec2 texCoord0; in vec4 normal; out vec4 fragColor; void main() { vec4 color = texture(Sampler0, texCoord0) * vertexColor * ColorModulator; if (color.a < 0.500000) { discard; } fragColor = linear_fog(color, vertexDistance, FogStart, FogEnd, FogColor); } version string: 150New VGPU Shader source: #version 320 es #define texture2D texture #define attribute in #define varying out precision highp float; precision highp int; #line 0 1 #define MINECRAFT_LIGHT_POWER (0.6) #define MINECRAFT_AMBIENT_LIGHT (0.4) vec4 minecraft_mix_light(vec3 lightDir0, vec3 lightDir1, vec3 normal, vec4 color) { lightDir0 = normalize(lightDir0); lightDir1 = normalize(lightDir1); float light0 = max(0.00000, dot(lightDir0, normal)); float light1 = max(0.00000, dot(lightDir1, normal)); float lightAccum = min(1.00000, (light0 + light1) * MINECRAFT_LIGHT_POWER + MINECRAFT_AMBIENT_LIGHT); return vec4(color.rgb * lightAccum, color.a); } vec4 minecraft_sample_lightmap(sampler2D lightMap, ivec2 uv) { return texture(lightMap, clamp(uv / 256.000, vec2(0.500000 / 16.0000), vec2(15.5000 / 16.0000))); } #line 0 2 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, int shape) { if (shape == 0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 4 0 in vec3 Position; in vec4 Color; in vec2 UV0; in ivec2 UV2; in vec3 Normal; uniform sampler2D Sampler2; uniform mat4 ModelViewMat; uniform mat4 ProjMat; uniform vec3 ChunkOffset; uniform int FogShape; out float vertexDistance; out vec4 vertexColor; out vec2 texCoord0; out vec4 normal; void main() { vec3 pos = Position + ChunkOffset; gl_Position = ProjMat * ModelViewMat * vec4(pos, 1.00000); vertexDistance = fog_distance(ModelViewMat, pos, FogShape); vertexColor = Color * minecraft_sample_lightmap(Sampler2, UV2); texCoord0 = UV0; normal = ProjMat * ModelViewMat * vec4(Normal, 0.00000); } New VGPU Shader conversion: #version 320 es #ifdef GL_OES_texture_storage_multisample_2d_array #extension GL_OES_texture_storage_multisample_2d_array : enable #endif #ifdef GL_EXT_texture_buffer #extension GL_EXT_texture_buffer : enable #endif #ifdef GL_EXT_texture_cube_map_array #extension GL_EXT_texture_cube_map_array : enable #endif #ifdef GL_EXT_shader_non_constant_global_initializers #extension GL_EXT_shader_non_constant_global_initializers : enable #endif precision highp float; precision lowp image2D; precision lowp image2DArray; precision lowp image3D; precision lowp imageCube; precision lowp sampler2D; precision lowp sampler3D; precision lowp sampler2DShadow; precision lowp samplerCubeShadow; precision lowp sampler2DArray; precision lowp sampler2DArrayShadow; precision lowp samplerCube; #ifdef GL_EXT_texture_buffer precision lowp samplerBuffer; precision lowp imageBuffer; #endif #ifdef GL_EXT_texture_cube_map_array precision lowp imageCubeArray; precision lowp samplerCubeArray; precision lowp samplerCubeArrayShadow; #endif #ifdef GL_OES_texture_storage_multisample_2d_array precision lowp sampler2DMS; precision lowp sampler2DMSArray; #endif #line 0 1 #define MINECRAFT_LIGHT_POWER (0.6) #define MINECRAFT_AMBIENT_LIGHT (0.4) vec4 minecraft_mix_light(vec3 lightDir0, vec3 lightDir1, vec3 normal, vec4 color) { lightDir0 = normalize(lightDir0); lightDir1 = normalize(lightDir1); float light0 = max(0.00000, dot(lightDir0, normal)); float light1 = max(0.00000, dot(lightDir1, normal)); float lightAccum = min(1.00000, (light0 + light1) * MINECRAFT_LIGHT_POWER + MINECRAFT_AMBIENT_LIGHT); return vec4(color.rgb * lightAccum, color.a); } vec4 minecraft_sample_lightmap(sampler2D lightMap, vec2 uv) { return texture(lightMap, clamp(uv / 256.000, vec2(0.500000 / 16.0000), vec2(15.5000 / 16.0000))); } #line 0 2 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, float shape) { if (shape == 0.0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 4 0 in vec3 Position; in vec4 Color; in vec2 UV0; in vec2 UV2; in vec3 Normal; uniform sampler2D Sampler2; uniform mat4 ModelViewMat; uniform mat4 ProjMat; uniform vec3 ChunkOffset; uniform float FogShape; out float vertexDistance; out vec4 vertexColor; out vec2 texCoord0; out vec4 normal; void main() { vec3 pos = Position + ChunkOffset; gl_Position = ProjMat * ModelViewMat * vec4(pos, 1.00000); vertexDistance = fog_distance(ModelViewMat, pos, FogShape); vertexColor = Color * minecraft_sample_lightmap(Sampler2, UV2); texCoord0 = UV0; normal = ProjMat * ModelViewMat * vec4(Normal, 0.00000); } version string: 150New VGPU Shader source: #version 320 es #define texture2D texture #define attribute in #define varying out precision highp float; precision highp int; #line 0 1 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, int shape) { if (shape == 0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 3 0 uniform sampler2D Sampler0; uniform vec4 ColorModulator; uniform float FogStart; uniform float FogEnd; uniform vec4 FogColor; in float vertexDistance; in vec4 vertexColor; in vec2 texCoord0; in vec4 normal; out vec4 fragColor; void main() { vec4 color = texture(Sampler0, texCoord0) * vertexColor * ColorModulator; if (color.a < 0.100000) { discard; } fragColor = linear_fog(color, vertexDistance, FogStart, FogEnd, FogColor); } New VGPU Shader conversion: #version 320 es #ifdef GL_OES_texture_storage_multisample_2d_array #extension GL_OES_texture_storage_multisample_2d_array : enable #endif #ifdef GL_EXT_texture_buffer #extension GL_EXT_texture_buffer : enable #endif #ifdef GL_EXT_texture_cube_map_array #extension GL_EXT_texture_cube_map_array : enable #endif #ifdef GL_EXT_shader_non_constant_global_initializers #extension GL_EXT_shader_non_constant_global_initializers : enable #endif precision highp float; precision lowp image2D; precision lowp image2DArray; precision lowp image3D; precision lowp imageCube; precision lowp sampler2D; precision lowp sampler3D; precision lowp sampler2DShadow; precision lowp samplerCubeShadow; precision lowp sampler2DArray; precision lowp sampler2DArrayShadow; precision lowp samplerCube; #ifdef GL_EXT_texture_buffer precision lowp samplerBuffer; precision lowp imageBuffer; #endif #ifdef GL_EXT_texture_cube_map_array precision lowp imageCubeArray; precision lowp samplerCubeArray; precision lowp samplerCubeArrayShadow; #endif #ifdef GL_OES_texture_storage_multisample_2d_array precision lowp sampler2DMS; precision lowp sampler2DMSArray; #endif #line 0 1 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, float shape) { if (shape == 0.0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 3 0 uniform sampler2D Sampler0; uniform vec4 ColorModulator; uniform float FogStart; uniform float FogEnd; uniform vec4 FogColor; in float vertexDistance; in vec4 vertexColor; in vec2 texCoord0; in vec4 normal; out vec4 fragColor; void main() { vec4 color = texture(Sampler0, texCoord0) * vertexColor * ColorModulator; if (color.a < 0.100000) { discard; } fragColor = linear_fog(color, vertexDistance, FogStart, FogEnd, FogColor); } version string: 150New VGPU Shader source: #version 320 es #define texture2D texture #define attribute in #define varying out precision highp float; precision highp int; #line 0 1 #define MINECRAFT_LIGHT_POWER (0.6) #define MINECRAFT_AMBIENT_LIGHT (0.4) vec4 minecraft_mix_light(vec3 lightDir0, vec3 lightDir1, vec3 normal, vec4 color) { lightDir0 = normalize(lightDir0); lightDir1 = normalize(lightDir1); float light0 = max(0.00000, dot(lightDir0, normal)); float light1 = max(0.00000, dot(lightDir1, normal)); float lightAccum = min(1.00000, (light0 + light1) * MINECRAFT_LIGHT_POWER + MINECRAFT_AMBIENT_LIGHT); return vec4(color.rgb * lightAccum, color.a); } vec4 minecraft_sample_lightmap(sampler2D lightMap, ivec2 uv) { return texture(lightMap, clamp(uv / 256.000, vec2(0.500000 / 16.0000), vec2(15.5000 / 16.0000))); } #line 0 2 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, int shape) { if (shape == 0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 4 0 in vec3 Position; in vec4 Color; in vec2 UV0; in ivec2 UV2; in vec3 Normal; uniform sampler2D Sampler2; uniform mat4 ModelViewMat; uniform mat4 ProjMat; uniform vec3 ChunkOffset; uniform int FogShape; out float vertexDistance; out vec4 vertexColor; out vec2 texCoord0; out vec4 normal; void main() { vec3 pos = Position + ChunkOffset; gl_Position = ProjMat * ModelViewMat * vec4(pos, 1.00000); vertexDistance = fog_distance(ModelViewMat, pos, FogShape); vertexColor = Color * minecraft_sample_lightmap(Sampler2, UV2); texCoord0 = UV0; normal = ProjMat * ModelViewMat * vec4(Normal, 0.00000); } New VGPU Shader conversion: #version 320 es #ifdef GL_OES_texture_storage_multisample_2d_array #extension GL_OES_texture_storage_multisample_2d_array : enable #endif #ifdef GL_EXT_texture_buffer #extension GL_EXT_texture_buffer : enable #endif #ifdef GL_EXT_texture_cube_map_array #extension GL_EXT_texture_cube_map_array : enable #endif #ifdef GL_EXT_shader_non_constant_global_initializers #extension GL_EXT_shader_non_constant_global_initializers : enable #endif precision highp float; precision lowp image2D; precision lowp image2DArray; precision lowp image3D; precision lowp imageCube; precision lowp sampler2D; precision lowp sampler3D; precision lowp sampler2DShadow; precision lowp samplerCubeShadow; precision lowp sampler2DArray; precision lowp sampler2DArrayShadow; precision lowp samplerCube; #ifdef GL_EXT_texture_buffer precision lowp samplerBuffer; precision lowp imageBuffer; #endif #ifdef GL_EXT_texture_cube_map_array precision lowp imageCubeArray; precision lowp samplerCubeArray; precision lowp samplerCubeArrayShadow; #endif #ifdef GL_OES_texture_storage_multisample_2d_array precision lowp sampler2DMS; precision lowp sampler2DMSArray; #endif #line 0 1 #define MINECRAFT_LIGHT_POWER (0.6) #define MINECRAFT_AMBIENT_LIGHT (0.4) vec4 minecraft_mix_light(vec3 lightDir0, vec3 lightDir1, vec3 normal, vec4 color) { lightDir0 = normalize(lightDir0); lightDir1 = normalize(lightDir1); float light0 = max(0.00000, dot(lightDir0, normal)); float light1 = max(0.00000, dot(lightDir1, normal)); float lightAccum = min(1.00000, (light0 + light1) * MINECRAFT_LIGHT_POWER + MINECRAFT_AMBIENT_LIGHT); return vec4(color.rgb * lightAccum, color.a); } vec4 minecraft_sample_lightmap(sampler2D lightMap, vec2 uv) { return texture(lightMap, clamp(uv / 256.000, vec2(0.500000 / 16.0000), vec2(15.5000 / 16.0000))); } #line 0 2 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, float shape) { if (shape == 0.0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 4 0 in vec3 Position; in vec4 Color; in vec2 UV0; in vec2 UV2; in vec3 Normal; uniform sampler2D Sampler2; uniform mat4 ModelViewMat; uniform mat4 ProjMat; uniform vec3 ChunkOffset; uniform float FogShape; out float vertexDistance; out vec4 vertexColor; out vec2 texCoord0; out vec4 normal; void main() { vec3 pos = Position + ChunkOffset; gl_Position = ProjMat * ModelViewMat * vec4(pos, 1.00000); vertexDistance = fog_distance(ModelViewMat, pos, FogShape); vertexColor = Color * minecraft_sample_lightmap(Sampler2, UV2); texCoord0 = UV0; normal = ProjMat * ModelViewMat * vec4(Normal, 0.00000); } version string: 150New VGPU Shader source: #version 320 es #define texture2D texture #define attribute in #define varying out precision highp float; precision highp int; #line 0 1 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, int shape) { if (shape == 0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 3 0 uniform sampler2D Sampler0; uniform vec4 ColorModulator; uniform float FogStart; uniform float FogEnd; uniform vec4 FogColor; in float vertexDistance; in vec4 vertexColor; in vec2 texCoord0; in vec4 normal; out vec4 fragColor; void main() { vec4 color = texture(Sampler0, texCoord0) * vertexColor * ColorModulator; fragColor = linear_fog(color, vertexDistance, FogStart, FogEnd, FogColor); } New VGPU Shader conversion: #version 320 es #ifdef GL_OES_texture_storage_multisample_2d_array #extension GL_OES_texture_storage_multisample_2d_array : enable #endif #ifdef GL_EXT_texture_buffer #extension GL_EXT_texture_buffer : enable #endif #ifdef GL_EXT_texture_cube_map_array #extension GL_EXT_texture_cube_map_array : enable #endif #ifdef GL_EXT_shader_non_constant_global_initializers #extension GL_EXT_shader_non_constant_global_initializers : enable #endif precision highp float; precision lowp image2D; precision lowp image2DArray; precision lowp image3D; precision lowp imageCube; precision lowp sampler2D; precision lowp sampler3D; precision lowp sampler2DShadow; precision lowp samplerCubeShadow; precision lowp sampler2DArray; precision lowp sampler2DArrayShadow; precision lowp samplerCube; #ifdef GL_EXT_texture_buffer precision lowp samplerBuffer; precision lowp imageBuffer; #endif #ifdef GL_EXT_texture_cube_map_array precision lowp imageCubeArray; precision lowp samplerCubeArray; precision lowp samplerCubeArrayShadow; #endif #ifdef GL_OES_texture_storage_multisample_2d_array precision lowp sampler2DMS; precision lowp sampler2DMSArray; #endif #line 0 1 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, float shape) { if (shape == 0.0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 3 0 uniform sampler2D Sampler0; uniform vec4 ColorModulator; uniform float FogStart; uniform float FogEnd; uniform vec4 FogColor; in float vertexDistance; in vec4 vertexColor; in vec2 texCoord0; in vec4 normal; out vec4 fragColor; void main() { vec4 color = texture(Sampler0, texCoord0) * vertexColor * ColorModulator; fragColor = linear_fog(color, vertexDistance, FogStart, FogEnd, FogColor); } version string: 150New VGPU Shader source: #version 320 es #define texture2D texture #define attribute in #define varying out precision highp float; precision highp int; in vec3 Position; in vec4 Color; in vec2 UV0; in ivec2 UV2; in vec3 Normal; uniform sampler2D Sampler2; uniform mat4 ModelViewMat; uniform mat4 ProjMat; out vec4 vertexColor; out vec2 texCoord0; out vec4 normal; void main() { gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.00000); vertexColor = Color * texelFetch(Sampler2, UV2 / 16, 0); texCoord0 = UV0; normal = ProjMat * ModelViewMat * vec4(Normal, 0.00000); } New VGPU Shader conversion: #version 320 es #ifdef GL_OES_texture_storage_multisample_2d_array #extension GL_OES_texture_storage_multisample_2d_array : enable #endif #ifdef GL_EXT_texture_buffer #extension GL_EXT_texture_buffer : enable #endif #ifdef GL_EXT_texture_cube_map_array #extension GL_EXT_texture_cube_map_array : enable #endif #ifdef GL_EXT_shader_non_constant_global_initializers #extension GL_EXT_shader_non_constant_global_initializers : enable #endif precision highp float; precision lowp image2D; precision lowp image2DArray; precision lowp image3D; precision lowp imageCube; precision lowp sampler2D; precision lowp sampler3D; precision lowp sampler2DShadow; precision lowp samplerCubeShadow; precision lowp sampler2DArray; precision lowp sampler2DArrayShadow; precision lowp samplerCube; #ifdef GL_EXT_texture_buffer precision lowp samplerBuffer; precision lowp imageBuffer; #endif #ifdef GL_EXT_texture_cube_map_array precision lowp imageCubeArray; precision lowp samplerCubeArray; precision lowp samplerCubeArrayShadow; #endif #ifdef GL_OES_texture_storage_multisample_2d_array precision lowp sampler2DMS; precision lowp sampler2DMSArray; #endif vec4 vgpu_texelFetch(sampler2D sampler, vec2 P, float lod){return texelFetch(sampler, ivec2(P), int(lod));} vec4 vgpu_texelFetch(sampler3D sampler, vec3 P, float lod){return texelFetch(sampler, ivec3(P), int(lod));} vec4 vgpu_texelFetch(sampler2DArray sampler, vec3 P, float lod){return texelFetch(sampler, ivec3(P), int(lod));} #ifdef GL_EXT_texture_buffer vec4 vgpu_texelFetch(samplerBuffer sampler, float P){return texelFetch(sampler, int(P));} #endif #ifdef GL_OES_texture_storage_multisample_2d_array vec4 vgpu_texelFetch(sampler2DMS sampler, vec2 P, float _sample){return texelFetch(sampler, ivec2(P), int(_sample));} vec4 vgpu_texelFetch(sampler2DMSArray sampler, vec3 P, float _sample){return texelFetch(sampler, ivec3(P), int(_sample));} #endif in vec3 Position; in vec4 Color; in vec2 UV0; in vec2 UV2; in vec3 Normal; uniform sampler2D Sampler2; uniform mat4 ModelViewMat; uniform mat4 ProjMat; out vec4 vertexColor; out vec2 texCoord0; out vec4 normal; void main() { gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.00000); vertexColor = Color * vgpu_texelFetch(Sampler2, UV2 / 16.0, 0.0); texCoord0 = UV0; normal = ProjMat * ModelViewMat * vec4(Normal, 0.00000); } version string: 150New VGPU Shader source: #version 320 es #define texture2D texture #define attribute in #define varying out precision highp float; precision highp int; uniform sampler2D Sampler0; uniform sampler2D Sampler2; uniform vec4 ColorModulator; in vec4 vertexColor; in vec2 texCoord0; in vec4 normal; out vec4 fragColor; void main() { vec4 color = texture(Sampler0, texCoord0) * vertexColor; fragColor = color * ColorModulator; } New VGPU Shader conversion: #version 320 es #ifdef GL_OES_texture_storage_multisample_2d_array #extension GL_OES_texture_storage_multisample_2d_array : enable #endif #ifdef GL_EXT_texture_buffer #extension GL_EXT_texture_buffer : enable #endif #ifdef GL_EXT_texture_cube_map_array #extension GL_EXT_texture_cube_map_array : enable #endif #ifdef GL_EXT_shader_non_constant_global_initializers #extension GL_EXT_shader_non_constant_global_initializers : enable #endif precision highp float; precision lowp image2D; precision lowp image2DArray; precision lowp image3D; precision lowp imageCube; precision lowp sampler2D; precision lowp sampler3D; precision lowp sampler2DShadow; precision lowp samplerCubeShadow; precision lowp sampler2DArray; precision lowp sampler2DArrayShadow; precision lowp samplerCube; #ifdef GL_EXT_texture_buffer precision lowp samplerBuffer; precision lowp imageBuffer; #endif #ifdef GL_EXT_texture_cube_map_array precision lowp imageCubeArray; precision lowp samplerCubeArray; precision lowp samplerCubeArrayShadow; #endif #ifdef GL_OES_texture_storage_multisample_2d_array precision lowp sampler2DMS; precision lowp sampler2DMSArray; #endif uniform sampler2D Sampler0; uniform sampler2D Sampler2; uniform vec4 ColorModulator; in vec4 vertexColor; in vec2 texCoord0; in vec4 normal; out vec4 fragColor; void main() { vec4 color = texture(Sampler0, texCoord0) * vertexColor; fragColor = color * ColorModulator; } version string: 150New VGPU Shader source: #version 320 es #define texture2D texture #define attribute in #define varying out precision highp float; precision highp int; in vec3 Position; in vec4 Color; in vec2 UV0; in vec2 UV2; in vec3 Normal; uniform mat4 ModelViewMat; uniform mat4 ProjMat; out vec4 vertexColor; out vec2 texCoord0; out vec2 texCoord2; out vec4 normal; void main() { gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.00000); vertexColor = Color; texCoord0 = UV0; texCoord2 = UV2; normal = ProjMat * ModelViewMat * vec4(Normal, 0.00000); } New VGPU Shader conversion: #version 320 es #ifdef GL_OES_texture_storage_multisample_2d_array #extension GL_OES_texture_storage_multisample_2d_array : enable #endif #ifdef GL_EXT_texture_buffer #extension GL_EXT_texture_buffer : enable #endif #ifdef GL_EXT_texture_cube_map_array #extension GL_EXT_texture_cube_map_array : enable #endif #ifdef GL_EXT_shader_non_constant_global_initializers #extension GL_EXT_shader_non_constant_global_initializers : enable #endif precision highp float; precision lowp image2D; precision lowp image2DArray; precision lowp image3D; precision lowp imageCube; precision lowp sampler2D; precision lowp sampler3D; precision lowp sampler2DShadow; precision lowp samplerCubeShadow; precision lowp sampler2DArray; precision lowp sampler2DArrayShadow; precision lowp samplerCube; #ifdef GL_EXT_texture_buffer precision lowp samplerBuffer; precision lowp imageBuffer; #endif #ifdef GL_EXT_texture_cube_map_array precision lowp imageCubeArray; precision lowp samplerCubeArray; precision lowp samplerCubeArrayShadow; #endif #ifdef GL_OES_texture_storage_multisample_2d_array precision lowp sampler2DMS; precision lowp sampler2DMSArray; #endif in vec3 Position; in vec4 Color; in vec2 UV0; in vec2 UV2; in vec3 Normal; uniform mat4 ModelViewMat; uniform mat4 ProjMat; out vec4 vertexColor; out vec2 texCoord0; out vec2 texCoord2; out vec4 normal; void main() { gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.00000); vertexColor = Color; texCoord0 = UV0; texCoord2 = UV2; normal = ProjMat * ModelViewMat * vec4(Normal, 0.00000); } version string: 150New VGPU Shader source: #version 320 es #define texture2D texture #define attribute in #define varying out precision highp float; precision highp int; uniform sampler2D Sampler0; uniform vec4 ColorModulator; in vec4 vertexColor; in vec2 texCoord0; in vec2 texCoord2; in vec4 normal; out vec4 fragColor; void main() { vec4 color = texture(Sampler0, texCoord0) * vertexColor; fragColor = color * ColorModulator; } New VGPU Shader conversion: #version 320 es #ifdef GL_OES_texture_storage_multisample_2d_array #extension GL_OES_texture_storage_multisample_2d_array : enable #endif #ifdef GL_EXT_texture_buffer #extension GL_EXT_texture_buffer : enable #endif #ifdef GL_EXT_texture_cube_map_array #extension GL_EXT_texture_cube_map_array : enable #endif #ifdef GL_EXT_shader_non_constant_global_initializers #extension GL_EXT_shader_non_constant_global_initializers : enable #endif precision highp float; precision lowp image2D; precision lowp image2DArray; precision lowp image3D; precision lowp imageCube; precision lowp sampler2D; precision lowp sampler3D; precision lowp sampler2DShadow; precision lowp samplerCubeShadow; precision lowp sampler2DArray; precision lowp sampler2DArrayShadow; precision lowp samplerCube; #ifdef GL_EXT_texture_buffer precision lowp samplerBuffer; precision lowp imageBuffer; #endif #ifdef GL_EXT_texture_cube_map_array precision lowp imageCubeArray; precision lowp samplerCubeArray; precision lowp samplerCubeArrayShadow; #endif #ifdef GL_OES_texture_storage_multisample_2d_array precision lowp sampler2DMS; precision lowp sampler2DMSArray; #endif uniform sampler2D Sampler0; uniform vec4 ColorModulator; in vec4 vertexColor; in vec2 texCoord0; in vec2 texCoord2; in vec4 normal; out vec4 fragColor; void main() { vec4 color = texture(Sampler0, texCoord0) * vertexColor; fragColor = color * ColorModulator; } version string: 150New VGPU Shader source: #version 320 es #define texture2D texture #define attribute in #define varying out precision highp float; precision highp int; #line 0 1 #define MINECRAFT_LIGHT_POWER (0.6) #define MINECRAFT_AMBIENT_LIGHT (0.4) vec4 minecraft_mix_light(vec3 lightDir0, vec3 lightDir1, vec3 normal, vec4 color) { lightDir0 = normalize(lightDir0); lightDir1 = normalize(lightDir1); float light0 = max(0.00000, dot(lightDir0, normal)); float light1 = max(0.00000, dot(lightDir1, normal)); float lightAccum = min(1.00000, (light0 + light1) * MINECRAFT_LIGHT_POWER + MINECRAFT_AMBIENT_LIGHT); return vec4(color.rgb * lightAccum, color.a); } vec4 minecraft_sample_lightmap(sampler2D lightMap, ivec2 uv) { return texture(lightMap, clamp(uv / 256.000, vec2(0.500000 / 16.0000), vec2(15.5000 / 16.0000))); } #line 0 2 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, int shape) { if (shape == 0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 4 0 in vec3 Position; in vec4 Color; in vec2 UV0; in vec2 UV1; in ivec2 UV2; in vec3 Normal; uniform sampler2D Sampler2; uniform mat4 ModelViewMat; uniform mat4 ProjMat; uniform int FogShape; uniform vec3 Light0_Direction; uniform vec3 Light1_Direction; out float vertexDistance; out vec4 vertexColor; out vec2 texCoord0; out vec2 texCoord1; out vec4 normal; void main() { gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.00000); vertexDistance = fog_distance(ModelViewMat, Position, FogShape); vertexColor = minecraft_mix_light(Light0_Direction, Light1_Direction, Normal, Color) * texelFetch(Sampler2, UV2 / 16, 0); texCoord0 = UV0; texCoord1 = UV1; normal = ProjMat * ModelViewMat * vec4(Normal, 0.00000); } New VGPU Shader conversion: #version 320 es #ifdef GL_OES_texture_storage_multisample_2d_array #extension GL_OES_texture_storage_multisample_2d_array : enable #endif #ifdef GL_EXT_texture_buffer #extension GL_EXT_texture_buffer : enable #endif #ifdef GL_EXT_texture_cube_map_array #extension GL_EXT_texture_cube_map_array : enable #endif #ifdef GL_EXT_shader_non_constant_global_initializers #extension GL_EXT_shader_non_constant_global_initializers : enable #endif precision highp float; precision lowp image2D; precision lowp image2DArray; precision lowp image3D; precision lowp imageCube; precision lowp sampler2D; precision lowp sampler3D; precision lowp sampler2DShadow; precision lowp samplerCubeShadow; precision lowp sampler2DArray; precision lowp sampler2DArrayShadow; precision lowp samplerCube; #ifdef GL_EXT_texture_buffer precision lowp samplerBuffer; precision lowp imageBuffer; #endif #ifdef GL_EXT_texture_cube_map_array precision lowp imageCubeArray; precision lowp samplerCubeArray; precision lowp samplerCubeArrayShadow; #endif #ifdef GL_OES_texture_storage_multisample_2d_array precision lowp sampler2DMS; precision lowp sampler2DMSArray; #endif vec4 vgpu_texelFetch(sampler2D sampler, vec2 P, float lod){return texelFetch(sampler, ivec2(P), int(lod));} vec4 vgpu_texelFetch(sampler3D sampler, vec3 P, float lod){return texelFetch(sampler, ivec3(P), int(lod));} vec4 vgpu_texelFetch(sampler2DArray sampler, vec3 P, float lod){return texelFetch(sampler, ivec3(P), int(lod));} #ifdef GL_EXT_texture_buffer vec4 vgpu_texelFetch(samplerBuffer sampler, float P){return texelFetch(sampler, int(P));} #endif #ifdef GL_OES_texture_storage_multisample_2d_array vec4 vgpu_texelFetch(sampler2DMS sampler, vec2 P, float _sample){return texelFetch(sampler, ivec2(P), int(_sample));} vec4 vgpu_texelFetch(sampler2DMSArray sampler, vec3 P, float _sample){return texelFetch(sampler, ivec3(P), int(_sample));} #endif #line 0 1 #define MINECRAFT_LIGHT_POWER (0.6) #define MINECRAFT_AMBIENT_LIGHT (0.4) vec4 minecraft_mix_light(vec3 lightDir0, vec3 lightDir1, vec3 normal, vec4 color) { lightDir0 = normalize(lightDir0); lightDir1 = normalize(lightDir1); float light0 = max(0.00000, dot(lightDir0, normal)); float light1 = max(0.00000, dot(lightDir1, normal)); float lightAccum = min(1.00000, (light0 + light1) * MINECRAFT_LIGHT_POWER + MINECRAFT_AMBIENT_LIGHT); return vec4(color.rgb * lightAccum, color.a); } vec4 minecraft_sample_lightmap(sampler2D lightMap, vec2 uv) { return texture(lightMap, clamp(uv / 256.000, vec2(0.500000 / 16.0000), vec2(15.5000 / 16.0000))); } #line 0 2 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, float shape) { if (shape == 0.0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 4 0 in vec3 Position; in vec4 Color; in vec2 UV0; in vec2 UV1; in vec2 UV2; in vec3 Normal; uniform sampler2D Sampler2; uniform mat4 ModelViewMat; uniform mat4 ProjMat; uniform float FogShape; uniform vec3 Light0_Direction; uniform vec3 Light1_Direction; out float vertexDistance; out vec4 vertexColor; out vec2 texCoord0; out vec2 texCoord1; out vec4 normal; void main() { gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.00000); vertexDistance = fog_distance(ModelViewMat, Position, FogShape); vertexColor = minecraft_mix_light(Light0_Direction, Light1_Direction, Normal, Color) * vgpu_texelFetch(Sampler2, UV2 / 16.0, 0.0); texCoord0 = UV0; texCoord1 = UV1; normal = ProjMat * ModelViewMat * vec4(Normal, 0.00000); } version string: 150New VGPU Shader source: #version 320 es #define texture2D texture #define attribute in #define varying out precision highp float; precision highp int; #line 0 1 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, int shape) { if (shape == 0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 3 0 uniform sampler2D Sampler0; uniform vec4 ColorModulator; uniform float FogStart; uniform float FogEnd; uniform vec4 FogColor; in float vertexDistance; in vec4 vertexColor; in vec2 texCoord0; in vec2 texCoord1; in vec4 normal; out vec4 fragColor; void main() { vec4 color = texture(Sampler0, texCoord0) * vertexColor * ColorModulator; if (color.a < 0.100000) { discard; } fragColor = linear_fog(color, vertexDistance, FogStart, FogEnd, FogColor); } New VGPU Shader conversion: #version 320 es #ifdef GL_OES_texture_storage_multisample_2d_array #extension GL_OES_texture_storage_multisample_2d_array : enable #endif #ifdef GL_EXT_texture_buffer #extension GL_EXT_texture_buffer : enable #endif #ifdef GL_EXT_texture_cube_map_array #extension GL_EXT_texture_cube_map_array : enable #endif #ifdef GL_EXT_shader_non_constant_global_initializers #extension GL_EXT_shader_non_constant_global_initializers : enable #endif precision highp float; precision lowp image2D; precision lowp image2DArray; precision lowp image3D; precision lowp imageCube; precision lowp sampler2D; precision lowp sampler3D; precision lowp sampler2DShadow; precision lowp samplerCubeShadow; precision lowp sampler2DArray; precision lowp sampler2DArrayShadow; precision lowp samplerCube; #ifdef GL_EXT_texture_buffer precision lowp samplerBuffer; precision lowp imageBuffer; #endif #ifdef GL_EXT_texture_cube_map_array precision lowp imageCubeArray; precision lowp samplerCubeArray; precision lowp samplerCubeArrayShadow; #endif #ifdef GL_OES_texture_storage_multisample_2d_array precision lowp sampler2DMS; precision lowp sampler2DMSArray; #endif #line 0 1 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, float shape) { if (shape == 0.0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 3 0 uniform sampler2D Sampler0; uniform vec4 ColorModulator; uniform float FogStart; uniform float FogEnd; uniform vec4 FogColor; in float vertexDistance; in vec4 vertexColor; in vec2 texCoord0; in vec2 texCoord1; in vec4 normal; out vec4 fragColor; void main() { vec4 color = texture(Sampler0, texCoord0) * vertexColor * ColorModulator; if (color.a < 0.100000) { discard; } fragColor = linear_fog(color, vertexDistance, FogStart, FogEnd, FogColor); } version string: 150New VGPU Shader source: #version 320 es #define texture2D texture #define attribute in #define varying out precision highp float; precision highp int; #line 0 1 #define MINECRAFT_LIGHT_POWER (0.6) #define MINECRAFT_AMBIENT_LIGHT (0.4) vec4 minecraft_mix_light(vec3 lightDir0, vec3 lightDir1, vec3 normal, vec4 color) { lightDir0 = normalize(lightDir0); lightDir1 = normalize(lightDir1); float light0 = max(0.00000, dot(lightDir0, normal)); float light1 = max(0.00000, dot(lightDir1, normal)); float lightAccum = min(1.00000, (light0 + light1) * MINECRAFT_LIGHT_POWER + MINECRAFT_AMBIENT_LIGHT); return vec4(color.rgb * lightAccum, color.a); } vec4 minecraft_sample_lightmap(sampler2D lightMap, ivec2 uv) { return texture(lightMap, clamp(uv / 256.000, vec2(0.500000 / 16.0000), vec2(15.5000 / 16.0000))); } #line 0 2 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, int shape) { if (shape == 0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 4 0 in vec3 Position; in vec4 Color; in vec2 UV0; in ivec2 UV1; in ivec2 UV2; in vec3 Normal; uniform sampler2D Sampler1; uniform sampler2D Sampler2; uniform mat4 ModelViewMat; uniform mat4 ProjMat; uniform mat3 IViewRotMat; uniform int FogShape; uniform vec3 Light0_Direction; uniform vec3 Light1_Direction; out float vertexDistance; out vec4 vertexColor; out vec4 lightMapColor; out vec4 overlayColor; out vec2 texCoord0; out vec4 normal; void main() { gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.00000); vertexDistance = fog_distance(ModelViewMat, IViewRotMat * Position, FogShape); vertexColor = minecraft_mix_light(Light0_Direction, Light1_Direction, Normal, Color); lightMapColor = texelFetch(Sampler2, UV2 / 16, 0); overlayColor = texelFetch(Sampler1, UV1, 0); texCoord0 = UV0; normal = ProjMat * ModelViewMat * vec4(Normal, 0.00000); } New VGPU Shader conversion: #version 320 es #ifdef GL_OES_texture_storage_multisample_2d_array #extension GL_OES_texture_storage_multisample_2d_array : enable #endif #ifdef GL_EXT_texture_buffer #extension GL_EXT_texture_buffer : enable #endif #ifdef GL_EXT_texture_cube_map_array #extension GL_EXT_texture_cube_map_array : enable #endif #ifdef GL_EXT_shader_non_constant_global_initializers #extension GL_EXT_shader_non_constant_global_initializers : enable #endif precision highp float; precision lowp image2D; precision lowp image2DArray; precision lowp image3D; precision lowp imageCube; precision lowp sampler2D; precision lowp sampler3D; precision lowp sampler2DShadow; precision lowp samplerCubeShadow; precision lowp sampler2DArray; precision lowp sampler2DArrayShadow; precision lowp samplerCube; #ifdef GL_EXT_texture_buffer precision lowp samplerBuffer; precision lowp imageBuffer; #endif #ifdef GL_EXT_texture_cube_map_array precision lowp imageCubeArray; precision lowp samplerCubeArray; precision lowp samplerCubeArrayShadow; #endif #ifdef GL_OES_texture_storage_multisample_2d_array precision lowp sampler2DMS; precision lowp sampler2DMSArray; #endif vec4 vgpu_texelFetch(sampler2D sampler, vec2 P, float lod){return texelFetch(sampler, ivec2(P), int(lod));} vec4 vgpu_texelFetch(sampler3D sampler, vec3 P, float lod){return texelFetch(sampler, ivec3(P), int(lod));} vec4 vgpu_texelFetch(sampler2DArray sampler, vec3 P, float lod){return texelFetch(sampler, ivec3(P), int(lod));} #ifdef GL_EXT_texture_buffer vec4 vgpu_texelFetch(samplerBuffer sampler, float P){return texelFetch(sampler, int(P));} #endif #ifdef GL_OES_texture_storage_multisample_2d_array vec4 vgpu_texelFetch(sampler2DMS sampler, vec2 P, float _sample){return texelFetch(sampler, ivec2(P), int(_sample));} vec4 vgpu_texelFetch(sampler2DMSArray sampler, vec3 P, float _sample){return texelFetch(sampler, ivec3(P), int(_sample));} #endif #line 0 1 #define MINECRAFT_LIGHT_POWER (0.6) #define MINECRAFT_AMBIENT_LIGHT (0.4) vec4 minecraft_mix_light(vec3 lightDir0, vec3 lightDir1, vec3 normal, vec4 color) { lightDir0 = normalize(lightDir0); lightDir1 = normalize(lightDir1); float light0 = max(0.00000, dot(lightDir0, normal)); float light1 = max(0.00000, dot(lightDir1, normal)); float lightAccum = min(1.00000, (light0 + light1) * MINECRAFT_LIGHT_POWER + MINECRAFT_AMBIENT_LIGHT); return vec4(color.rgb * lightAccum, color.a); } vec4 minecraft_sample_lightmap(sampler2D lightMap, vec2 uv) { return texture(lightMap, clamp(uv / 256.000, vec2(0.500000 / 16.0000), vec2(15.5000 / 16.0000))); } #line 0 2 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, float shape) { if (shape == 0.0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 4 0 in vec3 Position; in vec4 Color; in vec2 UV0; in vec2 UV1; in vec2 UV2; in vec3 Normal; uniform sampler2D Sampler1; uniform sampler2D Sampler2; uniform mat4 ModelViewMat; uniform mat4 ProjMat; uniform mat3 IViewRotMat; uniform float FogShape; uniform vec3 Light0_Direction; uniform vec3 Light1_Direction; out float vertexDistance; out vec4 vertexColor; out vec4 lightMapColor; out vec4 overlayColor; out vec2 texCoord0; out vec4 normal; void main() { gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.00000); vertexDistance = fog_distance(ModelViewMat, IViewRotMat * Position, FogShape); vertexColor = minecraft_mix_light(Light0_Direction, Light1_Direction, Normal, Color); lightMapColor = vgpu_texelFetch(Sampler2, UV2 / 16.0, 0.0); overlayColor = vgpu_texelFetch(Sampler1, UV1, 0.0); texCoord0 = UV0; normal = ProjMat * ModelViewMat * vec4(Normal, 0.00000); } version string: 150New VGPU Shader source: #version 320 es #define texture2D texture #define attribute in #define varying out precision highp float; precision highp int; #line 0 1 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, int shape) { if (shape == 0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 3 0 uniform sampler2D Sampler0; uniform vec4 ColorModulator; uniform float FogStart; uniform float FogEnd; uniform vec4 FogColor; in float vertexDistance; in vec4 vertexColor; in vec4 lightMapColor; in vec4 overlayColor; in vec2 texCoord0; in vec4 normal; out vec4 fragColor; void main() { vec4 color = texture(Sampler0, texCoord0) * vertexColor * ColorModulator; color.rgb = mix(overlayColor.rgb, color.rgb, overlayColor.a); color *= lightMapColor; fragColor = linear_fog(color, vertexDistance, FogStart, FogEnd, FogColor); } New VGPU Shader conversion: #version 320 es #ifdef GL_OES_texture_storage_multisample_2d_array #extension GL_OES_texture_storage_multisample_2d_array : enable #endif #ifdef GL_EXT_texture_buffer #extension GL_EXT_texture_buffer : enable #endif #ifdef GL_EXT_texture_cube_map_array #extension GL_EXT_texture_cube_map_array : enable #endif #ifdef GL_EXT_shader_non_constant_global_initializers #extension GL_EXT_shader_non_constant_global_initializers : enable #endif precision highp float; precision lowp image2D; precision lowp image2DArray; precision lowp image3D; precision lowp imageCube; precision lowp sampler2D; precision lowp sampler3D; precision lowp sampler2DShadow; precision lowp samplerCubeShadow; precision lowp sampler2DArray; precision lowp sampler2DArrayShadow; precision lowp samplerCube; #ifdef GL_EXT_texture_buffer precision lowp samplerBuffer; precision lowp imageBuffer; #endif #ifdef GL_EXT_texture_cube_map_array precision lowp imageCubeArray; precision lowp samplerCubeArray; precision lowp samplerCubeArrayShadow; #endif #ifdef GL_OES_texture_storage_multisample_2d_array precision lowp sampler2DMS; precision lowp sampler2DMSArray; #endif #line 0 1 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, float shape) { if (shape == 0.0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 3 0 uniform sampler2D Sampler0; uniform vec4 ColorModulator; uniform float FogStart; uniform float FogEnd; uniform vec4 FogColor; in float vertexDistance; in vec4 vertexColor; in vec4 lightMapColor; in vec4 overlayColor; in vec2 texCoord0; in vec4 normal; out vec4 fragColor; void main() { vec4 color = texture(Sampler0, texCoord0) * vertexColor * ColorModulator; color.rgb = mix(overlayColor.rgb, color.rgb, overlayColor.a); color *= lightMapColor; fragColor = linear_fog(color, vertexDistance, FogStart, FogEnd, FogColor); } version string: 150New VGPU Shader source: #version 320 es #define texture2D texture #define attribute in #define varying out precision highp float; precision highp int; #line 0 1 #define MINECRAFT_LIGHT_POWER (0.6) #define MINECRAFT_AMBIENT_LIGHT (0.4) vec4 minecraft_mix_light(vec3 lightDir0, vec3 lightDir1, vec3 normal, vec4 color) { lightDir0 = normalize(lightDir0); lightDir1 = normalize(lightDir1); float light0 = max(0.00000, dot(lightDir0, normal)); float light1 = max(0.00000, dot(lightDir1, normal)); float lightAccum = min(1.00000, (light0 + light1) * MINECRAFT_LIGHT_POWER + MINECRAFT_AMBIENT_LIGHT); return vec4(color.rgb * lightAccum, color.a); } vec4 minecraft_sample_lightmap(sampler2D lightMap, ivec2 uv) { return texture(lightMap, clamp(uv / 256.000, vec2(0.500000 / 16.0000), vec2(15.5000 / 16.0000))); } #line 0 2 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, int shape) { if (shape == 0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 4 0 in vec3 Position; in vec4 Color; in vec2 UV0; in ivec2 UV1; in ivec2 UV2; in vec3 Normal; uniform sampler2D Sampler1; uniform sampler2D Sampler2; uniform mat4 ModelViewMat; uniform mat4 ProjMat; uniform mat3 IViewRotMat; uniform int FogShape; uniform vec3 Light0_Direction; uniform vec3 Light1_Direction; out float vertexDistance; out vec4 vertexColor; out vec4 lightMapColor; out vec4 overlayColor; out vec2 texCoord0; out vec4 normal; void main() { gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.00000); vertexDistance = fog_distance(ModelViewMat, IViewRotMat * Position, FogShape); vertexColor = minecraft_mix_light(Light0_Direction, Light1_Direction, Normal, Color); lightMapColor = texelFetch(Sampler2, UV2 / 16, 0); overlayColor = texelFetch(Sampler1, UV1, 0); texCoord0 = UV0; normal = ProjMat * ModelViewMat * vec4(Normal, 0.00000); } New VGPU Shader conversion: #version 320 es #ifdef GL_OES_texture_storage_multisample_2d_array #extension GL_OES_texture_storage_multisample_2d_array : enable #endif #ifdef GL_EXT_texture_buffer #extension GL_EXT_texture_buffer : enable #endif #ifdef GL_EXT_texture_cube_map_array #extension GL_EXT_texture_cube_map_array : enable #endif #ifdef GL_EXT_shader_non_constant_global_initializers #extension GL_EXT_shader_non_constant_global_initializers : enable #endif precision highp float; precision lowp image2D; precision lowp image2DArray; precision lowp image3D; precision lowp imageCube; precision lowp sampler2D; precision lowp sampler3D; precision lowp sampler2DShadow; precision lowp samplerCubeShadow; precision lowp sampler2DArray; precision lowp sampler2DArrayShadow; precision lowp samplerCube; #ifdef GL_EXT_texture_buffer precision lowp samplerBuffer; precision lowp imageBuffer; #endif #ifdef GL_EXT_texture_cube_map_array precision lowp imageCubeArray; precision lowp samplerCubeArray; precision lowp samplerCubeArrayShadow; #endif #ifdef GL_OES_texture_storage_multisample_2d_array precision lowp sampler2DMS; precision lowp sampler2DMSArray; #endif vec4 vgpu_texelFetch(sampler2D sampler, vec2 P, float lod){return texelFetch(sampler, ivec2(P), int(lod));} vec4 vgpu_texelFetch(sampler3D sampler, vec3 P, float lod){return texelFetch(sampler, ivec3(P), int(lod));} vec4 vgpu_texelFetch(sampler2DArray sampler, vec3 P, float lod){return texelFetch(sampler, ivec3(P), int(lod));} #ifdef GL_EXT_texture_buffer vec4 vgpu_texelFetch(samplerBuffer sampler, float P){return texelFetch(sampler, int(P));} #endif #ifdef GL_OES_texture_storage_multisample_2d_array vec4 vgpu_texelFetch(sampler2DMS sampler, vec2 P, float _sample){return texelFetch(sampler, ivec2(P), int(_sample));} vec4 vgpu_texelFetch(sampler2DMSArray sampler, vec3 P, float _sample){return texelFetch(sampler, ivec3(P), int(_sample));} #endif #line 0 1 #define MINECRAFT_LIGHT_POWER (0.6) #define MINECRAFT_AMBIENT_LIGHT (0.4) vec4 minecraft_mix_light(vec3 lightDir0, vec3 lightDir1, vec3 normal, vec4 color) { lightDir0 = normalize(lightDir0); lightDir1 = normalize(lightDir1); float light0 = max(0.00000, dot(lightDir0, normal)); float light1 = max(0.00000, dot(lightDir1, normal)); float lightAccum = min(1.00000, (light0 + light1) * MINECRAFT_LIGHT_POWER + MINECRAFT_AMBIENT_LIGHT); return vec4(color.rgb * lightAccum, color.a); } vec4 minecraft_sample_lightmap(sampler2D lightMap, vec2 uv) { return texture(lightMap, clamp(uv / 256.000, vec2(0.500000 / 16.0000), vec2(15.5000 / 16.0000))); } #line 0 2 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, float shape) { if (shape == 0.0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 4 0 in vec3 Position; in vec4 Color; in vec2 UV0; in vec2 UV1; in vec2 UV2; in vec3 Normal; uniform sampler2D Sampler1; uniform sampler2D Sampler2; uniform mat4 ModelViewMat; uniform mat4 ProjMat; uniform mat3 IViewRotMat; uniform float FogShape; uniform vec3 Light0_Direction; uniform vec3 Light1_Direction; out float vertexDistance; out vec4 vertexColor; out vec4 lightMapColor; out vec4 overlayColor; out vec2 texCoord0; out vec4 normal; void main() { gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.00000); vertexDistance = fog_distance(ModelViewMat, IViewRotMat * Position, FogShape); vertexColor = minecraft_mix_light(Light0_Direction, Light1_Direction, Normal, Color); lightMapColor = vgpu_texelFetch(Sampler2, UV2 / 16.0, 0.0); overlayColor = vgpu_texelFetch(Sampler1, UV1, 0.0); texCoord0 = UV0; normal = ProjMat * ModelViewMat * vec4(Normal, 0.00000); } version string: 150New VGPU Shader source: #version 320 es #define texture2D texture #define attribute in #define varying out precision highp float; precision highp int; #line 0 1 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, int shape) { if (shape == 0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 3 0 uniform sampler2D Sampler0; uniform vec4 ColorModulator; uniform float FogStart; uniform float FogEnd; uniform vec4 FogColor; in float vertexDistance; in vec4 vertexColor; in vec4 lightMapColor; in vec4 overlayColor; in vec2 texCoord0; in vec4 normal; out vec4 fragColor; void main() { vec4 color = texture(Sampler0, texCoord0); if (color.a < 0.100000) { discard; } color *= vertexColor * ColorModulator; color.rgb = mix(overlayColor.rgb, color.rgb, overlayColor.a); color *= lightMapColor; fragColor = linear_fog(color, vertexDistance, FogStart, FogEnd, FogColor); } New VGPU Shader conversion: #version 320 es #ifdef GL_OES_texture_storage_multisample_2d_array #extension GL_OES_texture_storage_multisample_2d_array : enable #endif #ifdef GL_EXT_texture_buffer #extension GL_EXT_texture_buffer : enable #endif #ifdef GL_EXT_texture_cube_map_array #extension GL_EXT_texture_cube_map_array : enable #endif #ifdef GL_EXT_shader_non_constant_global_initializers #extension GL_EXT_shader_non_constant_global_initializers : enable #endif precision highp float; precision lowp image2D; precision lowp image2DArray; precision lowp image3D; precision lowp imageCube; precision lowp sampler2D; precision lowp sampler3D; precision lowp sampler2DShadow; precision lowp samplerCubeShadow; precision lowp sampler2DArray; precision lowp sampler2DArrayShadow; precision lowp samplerCube; #ifdef GL_EXT_texture_buffer precision lowp samplerBuffer; precision lowp imageBuffer; #endif #ifdef GL_EXT_texture_cube_map_array precision lowp imageCubeArray; precision lowp samplerCubeArray; precision lowp samplerCubeArrayShadow; #endif #ifdef GL_OES_texture_storage_multisample_2d_array precision lowp sampler2DMS; precision lowp sampler2DMSArray; #endif #line 0 1 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, float shape) { if (shape == 0.0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 3 0 uniform sampler2D Sampler0; uniform vec4 ColorModulator; uniform float FogStart; uniform float FogEnd; uniform vec4 FogColor; in float vertexDistance; in vec4 vertexColor; in vec4 lightMapColor; in vec4 overlayColor; in vec2 texCoord0; in vec4 normal; out vec4 fragColor; void main() { vec4 color = texture(Sampler0, texCoord0); if (color.a < 0.100000) { discard; } color *= vertexColor * ColorModulator; color.rgb = mix(overlayColor.rgb, color.rgb, overlayColor.a); color *= lightMapColor; fragColor = linear_fog(color, vertexDistance, FogStart, FogEnd, FogColor); } version string: 150New VGPU Shader source: #version 320 es #define texture2D texture #define attribute in #define varying out precision highp float; precision highp int; #line 0 1 #define MINECRAFT_LIGHT_POWER (0.6) #define MINECRAFT_AMBIENT_LIGHT (0.4) vec4 minecraft_mix_light(vec3 lightDir0, vec3 lightDir1, vec3 normal, vec4 color) { lightDir0 = normalize(lightDir0); lightDir1 = normalize(lightDir1); float light0 = max(0.00000, dot(lightDir0, normal)); float light1 = max(0.00000, dot(lightDir1, normal)); float lightAccum = min(1.00000, (light0 + light1) * MINECRAFT_LIGHT_POWER + MINECRAFT_AMBIENT_LIGHT); return vec4(color.rgb * lightAccum, color.a); } vec4 minecraft_sample_lightmap(sampler2D lightMap, ivec2 uv) { return texture(lightMap, clamp(uv / 256.000, vec2(0.500000 / 16.0000), vec2(15.5000 / 16.0000))); } #line 0 2 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, int shape) { if (shape == 0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 4 0 in vec3 Position; in vec4 Color; in vec2 UV0; in ivec2 UV1; in ivec2 UV2; in vec3 Normal; uniform sampler2D Sampler1; uniform sampler2D Sampler2; uniform mat4 ModelViewMat; uniform mat4 ProjMat; uniform mat3 IViewRotMat; uniform int FogShape; uniform vec3 Light0_Direction; uniform vec3 Light1_Direction; out float vertexDistance; out vec4 vertexColor; out vec4 lightMapColor; out vec4 overlayColor; out vec2 texCoord0; out vec4 normal; void main() { gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.00000); vertexDistance = fog_distance(ModelViewMat, IViewRotMat * Position, FogShape); vertexColor = minecraft_mix_light(Light0_Direction, Light1_Direction, Normal, Color); lightMapColor = texelFetch(Sampler2, UV2 / 16, 0); overlayColor = texelFetch(Sampler1, UV1, 0); texCoord0 = UV0; normal = ProjMat * ModelViewMat * vec4(Normal, 0.00000); } New VGPU Shader conversion: #version 320 es #ifdef GL_OES_texture_storage_multisample_2d_array #extension GL_OES_texture_storage_multisample_2d_array : enable #endif #ifdef GL_EXT_texture_buffer #extension GL_EXT_texture_buffer : enable #endif #ifdef GL_EXT_texture_cube_map_array #extension GL_EXT_texture_cube_map_array : enable #endif #ifdef GL_EXT_shader_non_constant_global_initializers #extension GL_EXT_shader_non_constant_global_initializers : enable #endif precision highp float; precision lowp image2D; precision lowp image2DArray; precision lowp image3D; precision lowp imageCube; precision lowp sampler2D; precision lowp sampler3D; precision lowp sampler2DShadow; precision lowp samplerCubeShadow; precision lowp sampler2DArray; precision lowp sampler2DArrayShadow; precision lowp samplerCube; #ifdef GL_EXT_texture_buffer precision lowp samplerBuffer; precision lowp imageBuffer; #endif #ifdef GL_EXT_texture_cube_map_array precision lowp imageCubeArray; precision lowp samplerCubeArray; precision lowp samplerCubeArrayShadow; #endif #ifdef GL_OES_texture_storage_multisample_2d_array precision lowp sampler2DMS; precision lowp sampler2DMSArray; #endif vec4 vgpu_texelFetch(sampler2D sampler, vec2 P, float lod){return texelFetch(sampler, ivec2(P), int(lod));} vec4 vgpu_texelFetch(sampler3D sampler, vec3 P, float lod){return texelFetch(sampler, ivec3(P), int(lod));} vec4 vgpu_texelFetch(sampler2DArray sampler, vec3 P, float lod){return texelFetch(sampler, ivec3(P), int(lod));} #ifdef GL_EXT_texture_buffer vec4 vgpu_texelFetch(samplerBuffer sampler, float P){return texelFetch(sampler, int(P));} #endif #ifdef GL_OES_texture_storage_multisample_2d_array vec4 vgpu_texelFetch(sampler2DMS sampler, vec2 P, float _sample){return texelFetch(sampler, ivec2(P), int(_sample));} vec4 vgpu_texelFetch(sampler2DMSArray sampler, vec3 P, float _sample){return texelFetch(sampler, ivec3(P), int(_sample));} #endif #line 0 1 #define MINECRAFT_LIGHT_POWER (0.6) #define MINECRAFT_AMBIENT_LIGHT (0.4) vec4 minecraft_mix_light(vec3 lightDir0, vec3 lightDir1, vec3 normal, vec4 color) { lightDir0 = normalize(lightDir0); lightDir1 = normalize(lightDir1); float light0 = max(0.00000, dot(lightDir0, normal)); float light1 = max(0.00000, dot(lightDir1, normal)); float lightAccum = min(1.00000, (light0 + light1) * MINECRAFT_LIGHT_POWER + MINECRAFT_AMBIENT_LIGHT); return vec4(color.rgb * lightAccum, color.a); } vec4 minecraft_sample_lightmap(sampler2D lightMap, vec2 uv) { return texture(lightMap, clamp(uv / 256.000, vec2(0.500000 / 16.0000), vec2(15.5000 / 16.0000))); } #line 0 2 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, float shape) { if (shape == 0.0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 4 0 in vec3 Position; in vec4 Color; in vec2 UV0; in vec2 UV1; in vec2 UV2; in vec3 Normal; uniform sampler2D Sampler1; uniform sampler2D Sampler2; uniform mat4 ModelViewMat; uniform mat4 ProjMat; uniform mat3 IViewRotMat; uniform float FogShape; uniform vec3 Light0_Direction; uniform vec3 Light1_Direction; out float vertexDistance; out vec4 vertexColor; out vec4 lightMapColor; out vec4 overlayColor; out vec2 texCoord0; out vec4 normal; void main() { gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.00000); vertexDistance = fog_distance(ModelViewMat, IViewRotMat * Position, FogShape); vertexColor = minecraft_mix_light(Light0_Direction, Light1_Direction, Normal, Color); lightMapColor = vgpu_texelFetch(Sampler2, UV2 / 16.0, 0.0); overlayColor = vgpu_texelFetch(Sampler1, UV1, 0.0); texCoord0 = UV0; normal = ProjMat * ModelViewMat * vec4(Normal, 0.00000); } version string: 150New VGPU Shader source: #version 320 es #define texture2D texture #define attribute in #define varying out precision highp float; precision highp int; #line 0 1 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, int shape) { if (shape == 0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 3 0 uniform sampler2D Sampler0; uniform vec4 ColorModulator; uniform float FogStart; uniform float FogEnd; uniform vec4 FogColor; in float vertexDistance; in vec4 vertexColor; in vec4 lightMapColor; in vec4 overlayColor; in vec2 texCoord0; in vec4 normal; out vec4 fragColor; void main() { vec4 color = texture(Sampler0, texCoord0); if (color.a < 0.100000) { discard; } color *= vertexColor * ColorModulator; color.rgb = mix(overlayColor.rgb, color.rgb, overlayColor.a); color *= lightMapColor; fragColor = linear_fog(color, vertexDistance, FogStart, FogEnd, FogColor); } New VGPU Shader conversion: #version 320 es #ifdef GL_OES_texture_storage_multisample_2d_array #extension GL_OES_texture_storage_multisample_2d_array : enable #endif #ifdef GL_EXT_texture_buffer #extension GL_EXT_texture_buffer : enable #endif #ifdef GL_EXT_texture_cube_map_array #extension GL_EXT_texture_cube_map_array : enable #endif #ifdef GL_EXT_shader_non_constant_global_initializers #extension GL_EXT_shader_non_constant_global_initializers : enable #endif precision highp float; precision lowp image2D; precision lowp image2DArray; precision lowp image3D; precision lowp imageCube; precision lowp sampler2D; precision lowp sampler3D; precision lowp sampler2DShadow; precision lowp samplerCubeShadow; precision lowp sampler2DArray; precision lowp sampler2DArrayShadow; precision lowp samplerCube; #ifdef GL_EXT_texture_buffer precision lowp samplerBuffer; precision lowp imageBuffer; #endif #ifdef GL_EXT_texture_cube_map_array precision lowp imageCubeArray; precision lowp samplerCubeArray; precision lowp samplerCubeArrayShadow; #endif #ifdef GL_OES_texture_storage_multisample_2d_array precision lowp sampler2DMS; precision lowp sampler2DMSArray; #endif #line 0 1 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, float shape) { if (shape == 0.0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 3 0 uniform sampler2D Sampler0; uniform vec4 ColorModulator; uniform float FogStart; uniform float FogEnd; uniform vec4 FogColor; in float vertexDistance; in vec4 vertexColor; in vec4 lightMapColor; in vec4 overlayColor; in vec2 texCoord0; in vec4 normal; out vec4 fragColor; void main() { vec4 color = texture(Sampler0, texCoord0); if (color.a < 0.100000) { discard; } color *= vertexColor * ColorModulator; color.rgb = mix(overlayColor.rgb, color.rgb, overlayColor.a); color *= lightMapColor; fragColor = linear_fog(color, vertexDistance, FogStart, FogEnd, FogColor); } version string: 150New VGPU Shader source: #version 320 es #define texture2D texture #define attribute in #define varying out precision highp float; precision highp int; #line 0 1 #define MINECRAFT_LIGHT_POWER (0.6) #define MINECRAFT_AMBIENT_LIGHT (0.4) vec4 minecraft_mix_light(vec3 lightDir0, vec3 lightDir1, vec3 normal, vec4 color) { lightDir0 = normalize(lightDir0); lightDir1 = normalize(lightDir1); float light0 = max(0.00000, dot(lightDir0, normal)); float light1 = max(0.00000, dot(lightDir1, normal)); float lightAccum = min(1.00000, (light0 + light1) * MINECRAFT_LIGHT_POWER + MINECRAFT_AMBIENT_LIGHT); return vec4(color.rgb * lightAccum, color.a); } vec4 minecraft_sample_lightmap(sampler2D lightMap, ivec2 uv) { return texture(lightMap, clamp(uv / 256.000, vec2(0.500000 / 16.0000), vec2(15.5000 / 16.0000))); } #line 0 2 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, int shape) { if (shape == 0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 4 0 in vec3 Position; in vec4 Color; in vec2 UV0; in ivec2 UV1; in ivec2 UV2; in vec3 Normal; uniform sampler2D Sampler1; uniform sampler2D Sampler2; uniform mat4 ModelViewMat; uniform mat4 ProjMat; uniform mat3 IViewRotMat; uniform int FogShape; uniform vec3 Light0_Direction; uniform vec3 Light1_Direction; out float vertexDistance; out vec4 vertexColor; out vec4 lightMapColor; out vec4 overlayColor; out vec2 texCoord0; out vec4 normal; void main() { gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.00000); vertexDistance = fog_distance(ModelViewMat, IViewRotMat * Position, FogShape); vertexColor = minecraft_mix_light(Light0_Direction, Light1_Direction, Normal, Color); lightMapColor = texelFetch(Sampler2, UV2 / 16, 0); overlayColor = texelFetch(Sampler1, UV1, 0); texCoord0 = UV0; normal = ProjMat * ModelViewMat * vec4(Normal, 0.00000); } New VGPU Shader conversion: #version 320 es #ifdef GL_OES_texture_storage_multisample_2d_array #extension GL_OES_texture_storage_multisample_2d_array : enable #endif #ifdef GL_EXT_texture_buffer #extension GL_EXT_texture_buffer : enable #endif #ifdef GL_EXT_texture_cube_map_array #extension GL_EXT_texture_cube_map_array : enable #endif #ifdef GL_EXT_shader_non_constant_global_initializers #extension GL_EXT_shader_non_constant_global_initializers : enable #endif precision highp float; precision lowp image2D; precision lowp image2DArray; precision lowp image3D; precision lowp imageCube; precision lowp sampler2D; precision lowp sampler3D; precision lowp sampler2DShadow; precision lowp samplerCubeShadow; precision lowp sampler2DArray; precision lowp sampler2DArrayShadow; precision lowp samplerCube; #ifdef GL_EXT_texture_buffer precision lowp samplerBuffer; precision lowp imageBuffer; #endif #ifdef GL_EXT_texture_cube_map_array precision lowp imageCubeArray; precision lowp samplerCubeArray; precision lowp samplerCubeArrayShadow; #endif #ifdef GL_OES_texture_storage_multisample_2d_array precision lowp sampler2DMS; precision lowp sampler2DMSArray; #endif vec4 vgpu_texelFetch(sampler2D sampler, vec2 P, float lod){return texelFetch(sampler, ivec2(P), int(lod));} vec4 vgpu_texelFetch(sampler3D sampler, vec3 P, float lod){return texelFetch(sampler, ivec3(P), int(lod));} vec4 vgpu_texelFetch(sampler2DArray sampler, vec3 P, float lod){return texelFetch(sampler, ivec3(P), int(lod));} #ifdef GL_EXT_texture_buffer vec4 vgpu_texelFetch(samplerBuffer sampler, float P){return texelFetch(sampler, int(P));} #endif #ifdef GL_OES_texture_storage_multisample_2d_array vec4 vgpu_texelFetch(sampler2DMS sampler, vec2 P, float _sample){return texelFetch(sampler, ivec2(P), int(_sample));} vec4 vgpu_texelFetch(sampler2DMSArray sampler, vec3 P, float _sample){return texelFetch(sampler, ivec3(P), int(_sample));} #endif #line 0 1 #define MINECRAFT_LIGHT_POWER (0.6) #define MINECRAFT_AMBIENT_LIGHT (0.4) vec4 minecraft_mix_light(vec3 lightDir0, vec3 lightDir1, vec3 normal, vec4 color) { lightDir0 = normalize(lightDir0); lightDir1 = normalize(lightDir1); float light0 = max(0.00000, dot(lightDir0, normal)); float light1 = max(0.00000, dot(lightDir1, normal)); float lightAccum = min(1.00000, (light0 + light1) * MINECRAFT_LIGHT_POWER + MINECRAFT_AMBIENT_LIGHT); return vec4(color.rgb * lightAccum, color.a); } vec4 minecraft_sample_lightmap(sampler2D lightMap, vec2 uv) { return texture(lightMap, clamp(uv / 256.000, vec2(0.500000 / 16.0000), vec2(15.5000 / 16.0000))); } #line 0 2 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, float shape) { if (shape == 0.0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 4 0 in vec3 Position; in vec4 Color; in vec2 UV0; in vec2 UV1; in vec2 UV2; in vec3 Normal; uniform sampler2D Sampler1; uniform sampler2D Sampler2; uniform mat4 ModelViewMat; uniform mat4 ProjMat; uniform mat3 IViewRotMat; uniform float FogShape; uniform vec3 Light0_Direction; uniform vec3 Light1_Direction; out float vertexDistance; out vec4 vertexColor; out vec4 lightMapColor; out vec4 overlayColor; out vec2 texCoord0; out vec4 normal; void main() { gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.00000); vertexDistance = fog_distance(ModelViewMat, IViewRotMat * Position, FogShape); vertexColor = minecraft_mix_light(Light0_Direction, Light1_Direction, Normal, Color); lightMapColor = vgpu_texelFetch(Sampler2, UV2 / 16.0, 0.0); overlayColor = vgpu_texelFetch(Sampler1, UV1, 0.0); texCoord0 = UV0; normal = ProjMat * ModelViewMat * vec4(Normal, 0.00000); } version string: 150New VGPU Shader source: #version 320 es #define texture2D texture #define attribute in #define varying out precision highp float; precision highp int; #line 0 1 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, int shape) { if (shape == 0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 3 0 uniform sampler2D Sampler0; uniform vec4 ColorModulator; uniform float FogStart; uniform float FogEnd; uniform vec4 FogColor; in float vertexDistance; in vec4 vertexColor; in vec4 lightMapColor; in vec4 overlayColor; in vec2 texCoord0; in vec4 normal; out vec4 fragColor; void main() { vec4 color = texture(Sampler0, texCoord0); if (color.a < 0.100000) { discard; } color *= vertexColor * ColorModulator; color.rgb = mix(overlayColor.rgb, color.rgb, overlayColor.a); color *= lightMapColor; fragColor = linear_fog(color, vertexDistance, FogStart, FogEnd, FogColor); } New VGPU Shader conversion: #version 320 es #ifdef GL_OES_texture_storage_multisample_2d_array #extension GL_OES_texture_storage_multisample_2d_array : enable #endif #ifdef GL_EXT_texture_buffer #extension GL_EXT_texture_buffer : enable #endif #ifdef GL_EXT_texture_cube_map_array #extension GL_EXT_texture_cube_map_array : enable #endif #ifdef GL_EXT_shader_non_constant_global_initializers #extension GL_EXT_shader_non_constant_global_initializers : enable #endif precision highp float; precision lowp image2D; precision lowp image2DArray; precision lowp image3D; precision lowp imageCube; precision lowp sampler2D; precision lowp sampler3D; precision lowp sampler2DShadow; precision lowp samplerCubeShadow; precision lowp sampler2DArray; precision lowp sampler2DArrayShadow; precision lowp samplerCube; #ifdef GL_EXT_texture_buffer precision lowp samplerBuffer; precision lowp imageBuffer; #endif #ifdef GL_EXT_texture_cube_map_array precision lowp imageCubeArray; precision lowp samplerCubeArray; precision lowp samplerCubeArrayShadow; #endif #ifdef GL_OES_texture_storage_multisample_2d_array precision lowp sampler2DMS; precision lowp sampler2DMSArray; #endif #line 0 1 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, float shape) { if (shape == 0.0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 3 0 uniform sampler2D Sampler0; uniform vec4 ColorModulator; uniform float FogStart; uniform float FogEnd; uniform vec4 FogColor; in float vertexDistance; in vec4 vertexColor; in vec4 lightMapColor; in vec4 overlayColor; in vec2 texCoord0; in vec4 normal; out vec4 fragColor; void main() { vec4 color = texture(Sampler0, texCoord0); if (color.a < 0.100000) { discard; } color *= vertexColor * ColorModulator; color.rgb = mix(overlayColor.rgb, color.rgb, overlayColor.a); color *= lightMapColor; fragColor = linear_fog(color, vertexDistance, FogStart, FogEnd, FogColor); } version string: 150New VGPU Shader source: #version 320 es #define texture2D texture #define attribute in #define varying out precision highp float; precision highp int; #line 0 1 #define MINECRAFT_LIGHT_POWER (0.6) #define MINECRAFT_AMBIENT_LIGHT (0.4) vec4 minecraft_mix_light(vec3 lightDir0, vec3 lightDir1, vec3 normal, vec4 color) { lightDir0 = normalize(lightDir0); lightDir1 = normalize(lightDir1); float light0 = max(0.00000, dot(lightDir0, normal)); float light1 = max(0.00000, dot(lightDir1, normal)); float lightAccum = min(1.00000, (light0 + light1) * MINECRAFT_LIGHT_POWER + MINECRAFT_AMBIENT_LIGHT); return vec4(color.rgb * lightAccum, color.a); } vec4 minecraft_sample_lightmap(sampler2D lightMap, ivec2 uv) { return texture(lightMap, clamp(uv / 256.000, vec2(0.500000 / 16.0000), vec2(15.5000 / 16.0000))); } #line 0 2 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, int shape) { if (shape == 0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 4 0 in vec3 Position; in vec4 Color; in vec2 UV0; in vec2 UV1; in ivec2 UV2; in vec3 Normal; uniform sampler2D Sampler2; uniform mat4 ModelViewMat; uniform mat4 ProjMat; uniform mat3 IViewRotMat; uniform int FogShape; uniform vec3 Light0_Direction; uniform vec3 Light1_Direction; out float vertexDistance; out vec4 vertexColor; out vec2 texCoord0; out vec2 texCoord1; out vec2 texCoord2; out vec4 normal; void main() { gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.00000); vertexDistance = fog_distance(ModelViewMat, IViewRotMat * Position, FogShape); vertexColor = minecraft_mix_light(Light0_Direction, Light1_Direction, Normal, Color) * texelFetch(Sampler2, UV2 / 16, 0); texCoord0 = UV0; texCoord1 = UV1; texCoord2 = UV2; normal = ProjMat * ModelViewMat * vec4(Normal, 0.00000); } New VGPU Shader conversion: #version 320 es #ifdef GL_OES_texture_storage_multisample_2d_array #extension GL_OES_texture_storage_multisample_2d_array : enable #endif #ifdef GL_EXT_texture_buffer #extension GL_EXT_texture_buffer : enable #endif #ifdef GL_EXT_texture_cube_map_array #extension GL_EXT_texture_cube_map_array : enable #endif #ifdef GL_EXT_shader_non_constant_global_initializers #extension GL_EXT_shader_non_constant_global_initializers : enable #endif precision highp float; precision lowp image2D; precision lowp image2DArray; precision lowp image3D; precision lowp imageCube; precision lowp sampler2D; precision lowp sampler3D; precision lowp sampler2DShadow; precision lowp samplerCubeShadow; precision lowp sampler2DArray; precision lowp sampler2DArrayShadow; precision lowp samplerCube; #ifdef GL_EXT_texture_buffer precision lowp samplerBuffer; precision lowp imageBuffer; #endif #ifdef GL_EXT_texture_cube_map_array precision lowp imageCubeArray; precision lowp samplerCubeArray; precision lowp samplerCubeArrayShadow; #endif #ifdef GL_OES_texture_storage_multisample_2d_array precision lowp sampler2DMS; precision lowp sampler2DMSArray; #endif vec4 vgpu_texelFetch(sampler2D sampler, vec2 P, float lod){return texelFetch(sampler, ivec2(P), int(lod));} vec4 vgpu_texelFetch(sampler3D sampler, vec3 P, float lod){return texelFetch(sampler, ivec3(P), int(lod));} vec4 vgpu_texelFetch(sampler2DArray sampler, vec3 P, float lod){return texelFetch(sampler, ivec3(P), int(lod));} #ifdef GL_EXT_texture_buffer vec4 vgpu_texelFetch(samplerBuffer sampler, float P){return texelFetch(sampler, int(P));} #endif #ifdef GL_OES_texture_storage_multisample_2d_array vec4 vgpu_texelFetch(sampler2DMS sampler, vec2 P, float _sample){return texelFetch(sampler, ivec2(P), int(_sample));} vec4 vgpu_texelFetch(sampler2DMSArray sampler, vec3 P, float _sample){return texelFetch(sampler, ivec3(P), int(_sample));} #endif #line 0 1 #define MINECRAFT_LIGHT_POWER (0.6) #define MINECRAFT_AMBIENT_LIGHT (0.4) vec4 minecraft_mix_light(vec3 lightDir0, vec3 lightDir1, vec3 normal, vec4 color) { lightDir0 = normalize(lightDir0); lightDir1 = normalize(lightDir1); float light0 = max(0.00000, dot(lightDir0, normal)); float light1 = max(0.00000, dot(lightDir1, normal)); float lightAccum = min(1.00000, (light0 + light1) * MINECRAFT_LIGHT_POWER + MINECRAFT_AMBIENT_LIGHT); return vec4(color.rgb * lightAccum, color.a); } vec4 minecraft_sample_lightmap(sampler2D lightMap, vec2 uv) { return texture(lightMap, clamp(uv / 256.000, vec2(0.500000 / 16.0000), vec2(15.5000 / 16.0000))); } #line 0 2 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, float shape) { if (shape == 0.0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 4 0 in vec3 Position; in vec4 Color; in vec2 UV0; in vec2 UV1; in vec2 UV2; in vec3 Normal; uniform sampler2D Sampler2; uniform mat4 ModelViewMat; uniform mat4 ProjMat; uniform mat3 IViewRotMat; uniform float FogShape; uniform vec3 Light0_Direction; uniform vec3 Light1_Direction; out float vertexDistance; out vec4 vertexColor; out vec2 texCoord0; out vec2 texCoord1; out vec2 texCoord2; out vec4 normal; void main() { gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.00000); vertexDistance = fog_distance(ModelViewMat, IViewRotMat * Position, FogShape); vertexColor = minecraft_mix_light(Light0_Direction, Light1_Direction, Normal, Color) * vgpu_texelFetch(Sampler2, UV2 / 16.0, 0.0); texCoord0 = UV0; texCoord1 = UV1; texCoord2 = UV2; normal = ProjMat * ModelViewMat * vec4(Normal, 0.00000); } version string: 150New VGPU Shader source: #version 320 es #define texture2D texture #define attribute in #define varying out precision highp float; precision highp int; #line 0 1 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, int shape) { if (shape == 0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 3 0 uniform sampler2D Sampler0; uniform vec4 ColorModulator; uniform float FogStart; uniform float FogEnd; uniform vec4 FogColor; in float vertexDistance; in vec4 vertexColor; in vec2 texCoord0; in vec2 texCoord1; in vec4 normal; out vec4 fragColor; void main() { vec4 color = texture(Sampler0, texCoord0) * vertexColor * ColorModulator; if (color.a < 0.100000) { discard; } fragColor = linear_fog(color, vertexDistance, FogStart, FogEnd, FogColor); } New VGPU Shader conversion: #version 320 es #ifdef GL_OES_texture_storage_multisample_2d_array #extension GL_OES_texture_storage_multisample_2d_array : enable #endif #ifdef GL_EXT_texture_buffer #extension GL_EXT_texture_buffer : enable #endif #ifdef GL_EXT_texture_cube_map_array #extension GL_EXT_texture_cube_map_array : enable #endif #ifdef GL_EXT_shader_non_constant_global_initializers #extension GL_EXT_shader_non_constant_global_initializers : enable #endif precision highp float; precision lowp image2D; precision lowp image2DArray; precision lowp image3D; precision lowp imageCube; precision lowp sampler2D; precision lowp sampler3D; precision lowp sampler2DShadow; precision lowp samplerCubeShadow; precision lowp sampler2DArray; precision lowp sampler2DArrayShadow; precision lowp samplerCube; #ifdef GL_EXT_texture_buffer precision lowp samplerBuffer; precision lowp imageBuffer; #endif #ifdef GL_EXT_texture_cube_map_array precision lowp imageCubeArray; precision lowp samplerCubeArray; precision lowp samplerCubeArrayShadow; #endif #ifdef GL_OES_texture_storage_multisample_2d_array precision lowp sampler2DMS; precision lowp sampler2DMSArray; #endif #line 0 1 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, float shape) { if (shape == 0.0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 3 0 uniform sampler2D Sampler0; uniform vec4 ColorModulator; uniform float FogStart; uniform float FogEnd; uniform vec4 FogColor; in float vertexDistance; in vec4 vertexColor; in vec2 texCoord0; in vec2 texCoord1; in vec4 normal; out vec4 fragColor; void main() { vec4 color = texture(Sampler0, texCoord0) * vertexColor * ColorModulator; if (color.a < 0.100000) { discard; } fragColor = linear_fog(color, vertexDistance, FogStart, FogEnd, FogColor); } version string: 150New VGPU Shader source: #version 320 es #define texture2D texture #define attribute in #define varying out precision highp float; precision highp int; #line 0 1 #define MINECRAFT_LIGHT_POWER (0.6) #define MINECRAFT_AMBIENT_LIGHT (0.4) vec4 minecraft_mix_light(vec3 lightDir0, vec3 lightDir1, vec3 normal, vec4 color) { lightDir0 = normalize(lightDir0); lightDir1 = normalize(lightDir1); float light0 = max(0.00000, dot(lightDir0, normal)); float light1 = max(0.00000, dot(lightDir1, normal)); float lightAccum = min(1.00000, (light0 + light1) * MINECRAFT_LIGHT_POWER + MINECRAFT_AMBIENT_LIGHT); return vec4(color.rgb * lightAccum, color.a); } vec4 minecraft_sample_lightmap(sampler2D lightMap, ivec2 uv) { return texture(lightMap, clamp(uv / 256.000, vec2(0.500000 / 16.0000), vec2(15.5000 / 16.0000))); } #line 0 2 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, int shape) { if (shape == 0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 4 0 in vec3 Position; in vec4 Color; in vec2 UV0; in vec2 UV1; in ivec2 UV2; in vec3 Normal; uniform sampler2D Sampler2; uniform mat4 ModelViewMat; uniform mat4 ProjMat; uniform mat3 IViewRotMat; uniform int FogShape; uniform vec3 Light0_Direction; uniform vec3 Light1_Direction; out float vertexDistance; out vec4 vertexColor; out vec2 texCoord0; out vec2 texCoord1; out vec2 texCoord2; out vec4 normal; void main() { gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.00000); vertexDistance = fog_distance(ModelViewMat, IViewRotMat * Position, FogShape); vertexColor = minecraft_mix_light(Light0_Direction, Light1_Direction, Normal, Color) * texelFetch(Sampler2, UV2 / 16, 0); texCoord0 = UV0; texCoord1 = UV1; texCoord2 = UV2; normal = ProjMat * ModelViewMat * vec4(Normal, 0.00000); } New VGPU Shader conversion: #version 320 es #ifdef GL_OES_texture_storage_multisample_2d_array #extension GL_OES_texture_storage_multisample_2d_array : enable #endif #ifdef GL_EXT_texture_buffer #extension GL_EXT_texture_buffer : enable #endif #ifdef GL_EXT_texture_cube_map_array #extension GL_EXT_texture_cube_map_array : enable #endif #ifdef GL_EXT_shader_non_constant_global_initializers #extension GL_EXT_shader_non_constant_global_initializers : enable #endif precision highp float; precision lowp image2D; precision lowp image2DArray; precision lowp image3D; precision lowp imageCube; precision lowp sampler2D; precision lowp sampler3D; precision lowp sampler2DShadow; precision lowp samplerCubeShadow; precision lowp sampler2DArray; precision lowp sampler2DArrayShadow; precision lowp samplerCube; #ifdef GL_EXT_texture_buffer precision lowp samplerBuffer; precision lowp imageBuffer; #endif #ifdef GL_EXT_texture_cube_map_array precision lowp imageCubeArray; precision lowp samplerCubeArray; precision lowp samplerCubeArrayShadow; #endif #ifdef GL_OES_texture_storage_multisample_2d_array precision lowp sampler2DMS; precision lowp sampler2DMSArray; #endif vec4 vgpu_texelFetch(sampler2D sampler, vec2 P, float lod){return texelFetch(sampler, ivec2(P), int(lod));} vec4 vgpu_texelFetch(sampler3D sampler, vec3 P, float lod){return texelFetch(sampler, ivec3(P), int(lod));} vec4 vgpu_texelFetch(sampler2DArray sampler, vec3 P, float lod){return texelFetch(sampler, ivec3(P), int(lod));} #ifdef GL_EXT_texture_buffer vec4 vgpu_texelFetch(samplerBuffer sampler, float P){return texelFetch(sampler, int(P));} #endif #ifdef GL_OES_texture_storage_multisample_2d_array vec4 vgpu_texelFetch(sampler2DMS sampler, vec2 P, float _sample){return texelFetch(sampler, ivec2(P), int(_sample));} vec4 vgpu_texelFetch(sampler2DMSArray sampler, vec3 P, float _sample){return texelFetch(sampler, ivec3(P), int(_sample));} #endif #line 0 1 #define MINECRAFT_LIGHT_POWER (0.6) #define MINECRAFT_AMBIENT_LIGHT (0.4) vec4 minecraft_mix_light(vec3 lightDir0, vec3 lightDir1, vec3 normal, vec4 color) { lightDir0 = normalize(lightDir0); lightDir1 = normalize(lightDir1); float light0 = max(0.00000, dot(lightDir0, normal)); float light1 = max(0.00000, dot(lightDir1, normal)); float lightAccum = min(1.00000, (light0 + light1) * MINECRAFT_LIGHT_POWER + MINECRAFT_AMBIENT_LIGHT); return vec4(color.rgb * lightAccum, color.a); } vec4 minecraft_sample_lightmap(sampler2D lightMap, vec2 uv) { return texture(lightMap, clamp(uv / 256.000, vec2(0.500000 / 16.0000), vec2(15.5000 / 16.0000))); } #line 0 2 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, float shape) { if (shape == 0.0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 4 0 in vec3 Position; in vec4 Color; in vec2 UV0; in vec2 UV1; in vec2 UV2; in vec3 Normal; uniform sampler2D Sampler2; uniform mat4 ModelViewMat; uniform mat4 ProjMat; uniform mat3 IViewRotMat; uniform float FogShape; uniform vec3 Light0_Direction; uniform vec3 Light1_Direction; out float vertexDistance; out vec4 vertexColor; out vec2 texCoord0; out vec2 texCoord1; out vec2 texCoord2; out vec4 normal; void main() { gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.00000); vertexDistance = fog_distance(ModelViewMat, IViewRotMat * Position, FogShape); vertexColor = minecraft_mix_light(Light0_Direction, Light1_Direction, Normal, Color) * vgpu_texelFetch(Sampler2, UV2 / 16.0, 0.0); texCoord0 = UV0; texCoord1 = UV1; texCoord2 = UV2; normal = ProjMat * ModelViewMat * vec4(Normal, 0.00000); } version string: 150New VGPU Shader source: #version 320 es #define texture2D texture #define attribute in #define varying out precision highp float; precision highp int; #line 0 1 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, int shape) { if (shape == 0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 3 0 uniform sampler2D Sampler0; uniform vec4 ColorModulator; uniform float FogStart; uniform float FogEnd; uniform vec4 FogColor; in float vertexDistance; in vec4 vertexColor; in vec2 texCoord0; in vec2 texCoord1; in vec4 normal; out vec4 fragColor; void main() { vec4 color = texture(Sampler0, texCoord0) * vertexColor * ColorModulator; if (color.a < 0.100000) { discard; } fragColor = linear_fog(color, vertexDistance, FogStart, FogEnd, FogColor); } New VGPU Shader conversion: #version 320 es #ifdef GL_OES_texture_storage_multisample_2d_array #extension GL_OES_texture_storage_multisample_2d_array : enable #endif #ifdef GL_EXT_texture_buffer #extension GL_EXT_texture_buffer : enable #endif #ifdef GL_EXT_texture_cube_map_array #extension GL_EXT_texture_cube_map_array : enable #endif #ifdef GL_EXT_shader_non_constant_global_initializers #extension GL_EXT_shader_non_constant_global_initializers : enable #endif precision highp float; precision lowp image2D; precision lowp image2DArray; precision lowp image3D; precision lowp imageCube; precision lowp sampler2D; precision lowp sampler3D; precision lowp sampler2DShadow; precision lowp samplerCubeShadow; precision lowp sampler2DArray; precision lowp sampler2DArrayShadow; precision lowp samplerCube; #ifdef GL_EXT_texture_buffer precision lowp samplerBuffer; precision lowp imageBuffer; #endif #ifdef GL_EXT_texture_cube_map_array precision lowp imageCubeArray; precision lowp samplerCubeArray; precision lowp samplerCubeArrayShadow; #endif #ifdef GL_OES_texture_storage_multisample_2d_array precision lowp sampler2DMS; precision lowp sampler2DMSArray; #endif #line 0 1 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, float shape) { if (shape == 0.0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 3 0 uniform sampler2D Sampler0; uniform vec4 ColorModulator; uniform float FogStart; uniform float FogEnd; uniform vec4 FogColor; in float vertexDistance; in vec4 vertexColor; in vec2 texCoord0; in vec2 texCoord1; in vec4 normal; out vec4 fragColor; void main() { vec4 color = texture(Sampler0, texCoord0) * vertexColor * ColorModulator; if (color.a < 0.100000) { discard; } fragColor = linear_fog(color, vertexDistance, FogStart, FogEnd, FogColor); } version string: 150New VGPU Shader source: #version 320 es #define texture2D texture #define attribute in #define varying out precision highp float; precision highp int; #line 0 1 #define MINECRAFT_LIGHT_POWER (0.6) #define MINECRAFT_AMBIENT_LIGHT (0.4) vec4 minecraft_mix_light(vec3 lightDir0, vec3 lightDir1, vec3 normal, vec4 color) { lightDir0 = normalize(lightDir0); lightDir1 = normalize(lightDir1); float light0 = max(0.00000, dot(lightDir0, normal)); float light1 = max(0.00000, dot(lightDir1, normal)); float lightAccum = min(1.00000, (light0 + light1) * MINECRAFT_LIGHT_POWER + MINECRAFT_AMBIENT_LIGHT); return vec4(color.rgb * lightAccum, color.a); } vec4 minecraft_sample_lightmap(sampler2D lightMap, ivec2 uv) { return texture(lightMap, clamp(uv / 256.000, vec2(0.500000 / 16.0000), vec2(15.5000 / 16.0000))); } #line 0 2 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, int shape) { if (shape == 0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 4 0 in vec3 Position; in vec4 Color; in vec2 UV0; in ivec2 UV1; in ivec2 UV2; in vec3 Normal; uniform sampler2D Sampler1; uniform sampler2D Sampler2; uniform mat4 ModelViewMat; uniform mat4 ProjMat; uniform mat3 IViewRotMat; uniform int FogShape; uniform vec3 Light0_Direction; uniform vec3 Light1_Direction; out float vertexDistance; out vec4 vertexColor; out vec4 lightMapColor; out vec4 overlayColor; out vec2 texCoord0; out vec4 normal; void main() { gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.00000); vertexDistance = fog_distance(ModelViewMat, IViewRotMat * Position, FogShape); vertexColor = minecraft_mix_light(Light0_Direction, Light1_Direction, Normal, Color); lightMapColor = texelFetch(Sampler2, UV2 / 16, 0); overlayColor = texelFetch(Sampler1, UV1, 0); texCoord0 = UV0; normal = ProjMat * ModelViewMat * vec4(Normal, 0.00000); } New VGPU Shader conversion: #version 320 es #ifdef GL_OES_texture_storage_multisample_2d_array #extension GL_OES_texture_storage_multisample_2d_array : enable #endif #ifdef GL_EXT_texture_buffer #extension GL_EXT_texture_buffer : enable #endif #ifdef GL_EXT_texture_cube_map_array #extension GL_EXT_texture_cube_map_array : enable #endif #ifdef GL_EXT_shader_non_constant_global_initializers #extension GL_EXT_shader_non_constant_global_initializers : enable #endif precision highp float; precision lowp image2D; precision lowp image2DArray; precision lowp image3D; precision lowp imageCube; precision lowp sampler2D; precision lowp sampler3D; precision lowp sampler2DShadow; precision lowp samplerCubeShadow; precision lowp sampler2DArray; precision lowp sampler2DArrayShadow; precision lowp samplerCube; #ifdef GL_EXT_texture_buffer precision lowp samplerBuffer; precision lowp imageBuffer; #endif #ifdef GL_EXT_texture_cube_map_array precision lowp imageCubeArray; precision lowp samplerCubeArray; precision lowp samplerCubeArrayShadow; #endif #ifdef GL_OES_texture_storage_multisample_2d_array precision lowp sampler2DMS; precision lowp sampler2DMSArray; #endif vec4 vgpu_texelFetch(sampler2D sampler, vec2 P, float lod){return texelFetch(sampler, ivec2(P), int(lod));} vec4 vgpu_texelFetch(sampler3D sampler, vec3 P, float lod){return texelFetch(sampler, ivec3(P), int(lod));} vec4 vgpu_texelFetch(sampler2DArray sampler, vec3 P, float lod){return texelFetch(sampler, ivec3(P), int(lod));} #ifdef GL_EXT_texture_buffer vec4 vgpu_texelFetch(samplerBuffer sampler, float P){return texelFetch(sampler, int(P));} #endif #ifdef GL_OES_texture_storage_multisample_2d_array vec4 vgpu_texelFetch(sampler2DMS sampler, vec2 P, float _sample){return texelFetch(sampler, ivec2(P), int(_sample));} vec4 vgpu_texelFetch(sampler2DMSArray sampler, vec3 P, float _sample){return texelFetch(sampler, ivec3(P), int(_sample));} #endif #line 0 1 #define MINECRAFT_LIGHT_POWER (0.6) #define MINECRAFT_AMBIENT_LIGHT (0.4) vec4 minecraft_mix_light(vec3 lightDir0, vec3 lightDir1, vec3 normal, vec4 color) { lightDir0 = normalize(lightDir0); lightDir1 = normalize(lightDir1); float light0 = max(0.00000, dot(lightDir0, normal)); float light1 = max(0.00000, dot(lightDir1, normal)); float lightAccum = min(1.00000, (light0 + light1) * MINECRAFT_LIGHT_POWER + MINECRAFT_AMBIENT_LIGHT); return vec4(color.rgb * lightAccum, color.a); } vec4 minecraft_sample_lightmap(sampler2D lightMap, vec2 uv) { return texture(lightMap, clamp(uv / 256.000, vec2(0.500000 / 16.0000), vec2(15.5000 / 16.0000))); } #line 0 2 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, float shape) { if (shape == 0.0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 4 0 in vec3 Position; in vec4 Color; in vec2 UV0; in vec2 UV1; in vec2 UV2; in vec3 Normal; uniform sampler2D Sampler1; uniform sampler2D Sampler2; uniform mat4 ModelViewMat; uniform mat4 ProjMat; uniform mat3 IViewRotMat; uniform float FogShape; uniform vec3 Light0_Direction; uniform vec3 Light1_Direction; out float vertexDistance; out vec4 vertexColor; out vec4 lightMapColor; out vec4 overlayColor; out vec2 texCoord0; out vec4 normal; void main() { gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.00000); vertexDistance = fog_distance(ModelViewMat, IViewRotMat * Position, FogShape); vertexColor = minecraft_mix_light(Light0_Direction, Light1_Direction, Normal, Color); lightMapColor = vgpu_texelFetch(Sampler2, UV2 / 16.0, 0.0); overlayColor = vgpu_texelFetch(Sampler1, UV1, 0.0); texCoord0 = UV0; normal = ProjMat * ModelViewMat * vec4(Normal, 0.00000); } version string: 150New VGPU Shader source: #version 320 es #define texture2D texture #define attribute in #define varying out precision highp float; precision highp int; #line 0 1 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, int shape) { if (shape == 0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 3 0 uniform sampler2D Sampler0; uniform vec4 ColorModulator; uniform float FogStart; uniform float FogEnd; uniform vec4 FogColor; in float vertexDistance; in vec4 vertexColor; in vec4 lightMapColor; in vec4 overlayColor; in vec2 texCoord0; in vec4 normal; out vec4 fragColor; void main() { vec4 color = texture(Sampler0, texCoord0); if (color.a < 0.100000) { discard; } color *= vertexColor * ColorModulator; color.rgb = mix(overlayColor.rgb, color.rgb, overlayColor.a); color *= lightMapColor; fragColor = linear_fog(color, vertexDistance, FogStart, FogEnd, FogColor); } New VGPU Shader conversion: #version 320 es #ifdef GL_OES_texture_storage_multisample_2d_array #extension GL_OES_texture_storage_multisample_2d_array : enable #endif #ifdef GL_EXT_texture_buffer #extension GL_EXT_texture_buffer : enable #endif #ifdef GL_EXT_texture_cube_map_array #extension GL_EXT_texture_cube_map_array : enable #endif #ifdef GL_EXT_shader_non_constant_global_initializers #extension GL_EXT_shader_non_constant_global_initializers : enable #endif precision highp float; precision lowp image2D; precision lowp image2DArray; precision lowp image3D; precision lowp imageCube; precision lowp sampler2D; precision lowp sampler3D; precision lowp sampler2DShadow; precision lowp samplerCubeShadow; precision lowp sampler2DArray; precision lowp sampler2DArrayShadow; precision lowp samplerCube; #ifdef GL_EXT_texture_buffer precision lowp samplerBuffer; precision lowp imageBuffer; #endif #ifdef GL_EXT_texture_cube_map_array precision lowp imageCubeArray; precision lowp samplerCubeArray; precision lowp samplerCubeArrayShadow; #endif #ifdef GL_OES_texture_storage_multisample_2d_array precision lowp sampler2DMS; precision lowp sampler2DMSArray; #endif #line 0 1 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, float shape) { if (shape == 0.0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 3 0 uniform sampler2D Sampler0; uniform vec4 ColorModulator; uniform float FogStart; uniform float FogEnd; uniform vec4 FogColor; in float vertexDistance; in vec4 vertexColor; in vec4 lightMapColor; in vec4 overlayColor; in vec2 texCoord0; in vec4 normal; out vec4 fragColor; void main() { vec4 color = texture(Sampler0, texCoord0); if (color.a < 0.100000) { discard; } color *= vertexColor * ColorModulator; color.rgb = mix(overlayColor.rgb, color.rgb, overlayColor.a); color *= lightMapColor; fragColor = linear_fog(color, vertexDistance, FogStart, FogEnd, FogColor); } version string: 150New VGPU Shader source: #version 320 es #define texture2D texture #define attribute in #define varying out precision highp float; precision highp int; #line 0 1 #define MINECRAFT_LIGHT_POWER (0.6) #define MINECRAFT_AMBIENT_LIGHT (0.4) vec4 minecraft_mix_light(vec3 lightDir0, vec3 lightDir1, vec3 normal, vec4 color) { lightDir0 = normalize(lightDir0); lightDir1 = normalize(lightDir1); float light0 = max(0.00000, dot(lightDir0, normal)); float light1 = max(0.00000, dot(lightDir1, normal)); float lightAccum = min(1.00000, (light0 + light1) * MINECRAFT_LIGHT_POWER + MINECRAFT_AMBIENT_LIGHT); return vec4(color.rgb * lightAccum, color.a); } vec4 minecraft_sample_lightmap(sampler2D lightMap, ivec2 uv) { return texture(lightMap, clamp(uv / 256.000, vec2(0.500000 / 16.0000), vec2(15.5000 / 16.0000))); } #line 3 0 in vec3 Position; in vec4 Color; in vec2 UV0; in ivec2 UV1; in ivec2 UV2; in vec3 Normal; uniform sampler2D Sampler1; uniform sampler2D Sampler2; uniform mat4 ModelViewMat; uniform mat4 ProjMat; uniform vec3 Light0_Direction; uniform vec3 Light1_Direction; out float vertexDistance; out vec4 vertexColor; out vec4 overlayColor; out vec2 texCoord0; out vec4 normal; void main() { gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.00000); vertexDistance = length((ModelViewMat * vec4(Position, 1.00000)).xyz); vertexColor = minecraft_mix_light(Light0_Direction, Light1_Direction, Normal, Color); overlayColor = texelFetch(Sampler1, UV1, 0); texCoord0 = UV0; normal = ProjMat * ModelViewMat * vec4(Normal, 0.00000); } New VGPU Shader conversion: #version 320 es #ifdef GL_OES_texture_storage_multisample_2d_array #extension GL_OES_texture_storage_multisample_2d_array : enable #endif #ifdef GL_EXT_texture_buffer #extension GL_EXT_texture_buffer : enable #endif #ifdef GL_EXT_texture_cube_map_array #extension GL_EXT_texture_cube_map_array : enable #endif #ifdef GL_EXT_shader_non_constant_global_initializers #extension GL_EXT_shader_non_constant_global_initializers : enable #endif precision highp float; precision lowp image2D; precision lowp image2DArray; precision lowp image3D; precision lowp imageCube; precision lowp sampler2D; precision lowp sampler3D; precision lowp sampler2DShadow; precision lowp samplerCubeShadow; precision lowp sampler2DArray; precision lowp sampler2DArrayShadow; precision lowp samplerCube; #ifdef GL_EXT_texture_buffer precision lowp samplerBuffer; precision lowp imageBuffer; #endif #ifdef GL_EXT_texture_cube_map_array precision lowp imageCubeArray; precision lowp samplerCubeArray; precision lowp samplerCubeArrayShadow; #endif #ifdef GL_OES_texture_storage_multisample_2d_array precision lowp sampler2DMS; precision lowp sampler2DMSArray; #endif vec4 vgpu_texelFetch(sampler2D sampler, vec2 P, float lod){return texelFetch(sampler, ivec2(P), int(lod));} vec4 vgpu_texelFetch(sampler3D sampler, vec3 P, float lod){return texelFetch(sampler, ivec3(P), int(lod));} vec4 vgpu_texelFetch(sampler2DArray sampler, vec3 P, float lod){return texelFetch(sampler, ivec3(P), int(lod));} #ifdef GL_EXT_texture_buffer vec4 vgpu_texelFetch(samplerBuffer sampler, float P){return texelFetch(sampler, int(P));} #endif #ifdef GL_OES_texture_storage_multisample_2d_array vec4 vgpu_texelFetch(sampler2DMS sampler, vec2 P, float _sample){return texelFetch(sampler, ivec2(P), int(_sample));} vec4 vgpu_texelFetch(sampler2DMSArray sampler, vec3 P, float _sample){return texelFetch(sampler, ivec3(P), int(_sample));} #endif #line 0 1 #define MINECRAFT_LIGHT_POWER (0.6) #define MINECRAFT_AMBIENT_LIGHT (0.4) vec4 minecraft_mix_light(vec3 lightDir0, vec3 lightDir1, vec3 normal, vec4 color) { lightDir0 = normalize(lightDir0); lightDir1 = normalize(lightDir1); float light0 = max(0.00000, dot(lightDir0, normal)); float light1 = max(0.00000, dot(lightDir1, normal)); float lightAccum = min(1.00000, (light0 + light1) * MINECRAFT_LIGHT_POWER + MINECRAFT_AMBIENT_LIGHT); return vec4(color.rgb * lightAccum, color.a); } vec4 minecraft_sample_lightmap(sampler2D lightMap, vec2 uv) { return texture(lightMap, clamp(uv / 256.000, vec2(0.500000 / 16.0000), vec2(15.5000 / 16.0000))); } #line 3 0 in vec3 Position; in vec4 Color; in vec2 UV0; in vec2 UV1; in vec2 UV2; in vec3 Normal; uniform sampler2D Sampler1; uniform sampler2D Sampler2; uniform mat4 ModelViewMat; uniform mat4 ProjMat; uniform vec3 Light0_Direction; uniform vec3 Light1_Direction; out float vertexDistance; out vec4 vertexColor; out vec4 overlayColor; out vec2 texCoord0; out vec4 normal; void main() { gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.00000); vertexDistance = length((ModelViewMat * vec4(Position, 1.00000)).xyz); vertexColor = minecraft_mix_light(Light0_Direction, Light1_Direction, Normal, Color); overlayColor = vgpu_texelFetch(Sampler1, UV1, 0.0); texCoord0 = UV0; normal = ProjMat * ModelViewMat * vec4(Normal, 0.00000); } version string: 150New VGPU Shader source: #version 320 es #define texture2D texture #define attribute in #define varying out precision highp float; precision highp int; #line 0 1 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, int shape) { if (shape == 0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 3 0 uniform sampler2D Sampler0; uniform vec4 ColorModulator; uniform float FogStart; uniform float FogEnd; in float vertexDistance; in vec4 vertexColor; in vec4 overlayColor; in vec2 texCoord0; in vec4 normal; out vec4 fragColor; void main() { vec4 color = texture(Sampler0, texCoord0); if (color.a < 0.100000) { discard; } color *= vertexColor * ColorModulator; color.rgb = mix(overlayColor.rgb, color.rgb, overlayColor.a); fragColor = color * linear_fog_fade(vertexDistance, FogStart, FogEnd); } New VGPU Shader conversion: #version 320 es #ifdef GL_OES_texture_storage_multisample_2d_array #extension GL_OES_texture_storage_multisample_2d_array : enable #endif #ifdef GL_EXT_texture_buffer #extension GL_EXT_texture_buffer : enable #endif #ifdef GL_EXT_texture_cube_map_array #extension GL_EXT_texture_cube_map_array : enable #endif #ifdef GL_EXT_shader_non_constant_global_initializers #extension GL_EXT_shader_non_constant_global_initializers : enable #endif precision highp float; precision lowp image2D; precision lowp image2DArray; precision lowp image3D; precision lowp imageCube; precision lowp sampler2D; precision lowp sampler3D; precision lowp sampler2DShadow; precision lowp samplerCubeShadow; precision lowp sampler2DArray; precision lowp sampler2DArrayShadow; precision lowp samplerCube; #ifdef GL_EXT_texture_buffer precision lowp samplerBuffer; precision lowp imageBuffer; #endif #ifdef GL_EXT_texture_cube_map_array precision lowp imageCubeArray; precision lowp samplerCubeArray; precision lowp samplerCubeArrayShadow; #endif #ifdef GL_OES_texture_storage_multisample_2d_array precision lowp sampler2DMS; precision lowp sampler2DMSArray; #endif #line 0 1 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, float shape) { if (shape == 0.0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 3 0 uniform sampler2D Sampler0; uniform vec4 ColorModulator; uniform float FogStart; uniform float FogEnd; in float vertexDistance; in vec4 vertexColor; in vec4 overlayColor; in vec2 texCoord0; in vec4 normal; out vec4 fragColor; void main() { vec4 color = texture(Sampler0, texCoord0); if (color.a < 0.100000) { discard; } color *= vertexColor * ColorModulator; color.rgb = mix(overlayColor.rgb, color.rgb, overlayColor.a); fragColor = color * linear_fog_fade(vertexDistance, FogStart, FogEnd); } [17:40:32] [Render thread/WARN]: Shader rendertype_entity_translucent_emissive could not find sampler named Sampler2 in the specified shader program. version string: 150New VGPU Shader source: #version 320 es #define texture2D texture #define attribute in #define varying out precision highp float; precision highp int; #line 0 1 #define MINECRAFT_LIGHT_POWER (0.6) #define MINECRAFT_AMBIENT_LIGHT (0.4) vec4 minecraft_mix_light(vec3 lightDir0, vec3 lightDir1, vec3 normal, vec4 color) { lightDir0 = normalize(lightDir0); lightDir1 = normalize(lightDir1); float light0 = max(0.00000, dot(lightDir0, normal)); float light1 = max(0.00000, dot(lightDir1, normal)); float lightAccum = min(1.00000, (light0 + light1) * MINECRAFT_LIGHT_POWER + MINECRAFT_AMBIENT_LIGHT); return vec4(color.rgb * lightAccum, color.a); } vec4 minecraft_sample_lightmap(sampler2D lightMap, ivec2 uv) { return texture(lightMap, clamp(uv / 256.000, vec2(0.500000 / 16.0000), vec2(15.5000 / 16.0000))); } #line 0 2 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, int shape) { if (shape == 0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 4 0 in vec3 Position; in vec4 Color; in vec2 UV0; in ivec2 UV1; in ivec2 UV2; in vec3 Normal; uniform sampler2D Sampler1; uniform sampler2D Sampler2; uniform mat4 ModelViewMat; uniform mat4 ProjMat; uniform mat3 IViewRotMat; uniform int FogShape; uniform vec3 Light0_Direction; uniform vec3 Light1_Direction; out float vertexDistance; out vec4 vertexColor; out vec4 lightMapColor; out vec4 overlayColor; out vec2 texCoord0; out vec4 normal; void main() { gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.00000); vertexDistance = fog_distance(ModelViewMat, IViewRotMat * Position, FogShape); vertexColor = minecraft_mix_light(Light0_Direction, Light1_Direction, Normal, Color); lightMapColor = texelFetch(Sampler2, UV2 / 16, 0); overlayColor = texelFetch(Sampler1, UV1, 0); texCoord0 = UV0; normal = ProjMat * ModelViewMat * vec4(Normal, 0.00000); } New VGPU Shader conversion: #version 320 es #ifdef GL_OES_texture_storage_multisample_2d_array #extension GL_OES_texture_storage_multisample_2d_array : enable #endif #ifdef GL_EXT_texture_buffer #extension GL_EXT_texture_buffer : enable #endif #ifdef GL_EXT_texture_cube_map_array #extension GL_EXT_texture_cube_map_array : enable #endif #ifdef GL_EXT_shader_non_constant_global_initializers #extension GL_EXT_shader_non_constant_global_initializers : enable #endif precision highp float; precision lowp image2D; precision lowp image2DArray; precision lowp image3D; precision lowp imageCube; precision lowp sampler2D; precision lowp sampler3D; precision lowp sampler2DShadow; precision lowp samplerCubeShadow; precision lowp sampler2DArray; precision lowp sampler2DArrayShadow; precision lowp samplerCube; #ifdef GL_EXT_texture_buffer precision lowp samplerBuffer; precision lowp imageBuffer; #endif #ifdef GL_EXT_texture_cube_map_array precision lowp imageCubeArray; precision lowp samplerCubeArray; precision lowp samplerCubeArrayShadow; #endif #ifdef GL_OES_texture_storage_multisample_2d_array precision lowp sampler2DMS; precision lowp sampler2DMSArray; #endif vec4 vgpu_texelFetch(sampler2D sampler, vec2 P, float lod){return texelFetch(sampler, ivec2(P), int(lod));} vec4 vgpu_texelFetch(sampler3D sampler, vec3 P, float lod){return texelFetch(sampler, ivec3(P), int(lod));} vec4 vgpu_texelFetch(sampler2DArray sampler, vec3 P, float lod){return texelFetch(sampler, ivec3(P), int(lod));} #ifdef GL_EXT_texture_buffer vec4 vgpu_texelFetch(samplerBuffer sampler, float P){return texelFetch(sampler, int(P));} #endif #ifdef GL_OES_texture_storage_multisample_2d_array vec4 vgpu_texelFetch(sampler2DMS sampler, vec2 P, float _sample){return texelFetch(sampler, ivec2(P), int(_sample));} vec4 vgpu_texelFetch(sampler2DMSArray sampler, vec3 P, float _sample){return texelFetch(sampler, ivec3(P), int(_sample));} #endif #line 0 1 #define MINECRAFT_LIGHT_POWER (0.6) #define MINECRAFT_AMBIENT_LIGHT (0.4) vec4 minecraft_mix_light(vec3 lightDir0, vec3 lightDir1, vec3 normal, vec4 color) { lightDir0 = normalize(lightDir0); lightDir1 = normalize(lightDir1); float light0 = max(0.00000, dot(lightDir0, normal)); float light1 = max(0.00000, dot(lightDir1, normal)); float lightAccum = min(1.00000, (light0 + light1) * MINECRAFT_LIGHT_POWER + MINECRAFT_AMBIENT_LIGHT); return vec4(color.rgb * lightAccum, color.a); } vec4 minecraft_sample_lightmap(sampler2D lightMap, vec2 uv) { return texture(lightMap, clamp(uv / 256.000, vec2(0.500000 / 16.0000), vec2(15.5000 / 16.0000))); } #line 0 2 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, float shape) { if (shape == 0.0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 4 0 in vec3 Position; in vec4 Color; in vec2 UV0; in vec2 UV1; in vec2 UV2; in vec3 Normal; uniform sampler2D Sampler1; uniform sampler2D Sampler2; uniform mat4 ModelViewMat; uniform mat4 ProjMat; uniform mat3 IViewRotMat; uniform float FogShape; uniform vec3 Light0_Direction; uniform vec3 Light1_Direction; out float vertexDistance; out vec4 vertexColor; out vec4 lightMapColor; out vec4 overlayColor; out vec2 texCoord0; out vec4 normal; void main() { gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.00000); vertexDistance = fog_distance(ModelViewMat, IViewRotMat * Position, FogShape); vertexColor = minecraft_mix_light(Light0_Direction, Light1_Direction, Normal, Color); lightMapColor = vgpu_texelFetch(Sampler2, UV2 / 16.0, 0.0); overlayColor = vgpu_texelFetch(Sampler1, UV1, 0.0); texCoord0 = UV0; normal = ProjMat * ModelViewMat * vec4(Normal, 0.00000); } version string: 150New VGPU Shader source: #version 320 es #define texture2D texture #define attribute in #define varying out precision highp float; precision highp int; #line 0 1 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, int shape) { if (shape == 0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 3 0 uniform sampler2D Sampler0; uniform vec4 ColorModulator; uniform float FogStart; uniform float FogEnd; uniform vec4 FogColor; in float vertexDistance; in vec4 vertexColor; in vec4 lightMapColor; in vec4 overlayColor; in vec2 texCoord0; in vec4 normal; out vec4 fragColor; void main() { vec4 color = texture(Sampler0, texCoord0); if (color.a < 0.100000) { discard; } color *= vertexColor * ColorModulator; color.rgb = mix(overlayColor.rgb, color.rgb, overlayColor.a); color *= lightMapColor; fragColor = linear_fog(color, vertexDistance, FogStart, FogEnd, FogColor); } New VGPU Shader conversion: #version 320 es #ifdef GL_OES_texture_storage_multisample_2d_array #extension GL_OES_texture_storage_multisample_2d_array : enable #endif #ifdef GL_EXT_texture_buffer #extension GL_EXT_texture_buffer : enable #endif #ifdef GL_EXT_texture_cube_map_array #extension GL_EXT_texture_cube_map_array : enable #endif #ifdef GL_EXT_shader_non_constant_global_initializers #extension GL_EXT_shader_non_constant_global_initializers : enable #endif precision highp float; precision lowp image2D; precision lowp image2DArray; precision lowp image3D; precision lowp imageCube; precision lowp sampler2D; precision lowp sampler3D; precision lowp sampler2DShadow; precision lowp samplerCubeShadow; precision lowp sampler2DArray; precision lowp sampler2DArrayShadow; precision lowp samplerCube; #ifdef GL_EXT_texture_buffer precision lowp samplerBuffer; precision lowp imageBuffer; #endif #ifdef GL_EXT_texture_cube_map_array precision lowp imageCubeArray; precision lowp samplerCubeArray; precision lowp samplerCubeArrayShadow; #endif #ifdef GL_OES_texture_storage_multisample_2d_array precision lowp sampler2DMS; precision lowp sampler2DMSArray; #endif #line 0 1 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, float shape) { if (shape == 0.0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 3 0 uniform sampler2D Sampler0; uniform vec4 ColorModulator; uniform float FogStart; uniform float FogEnd; uniform vec4 FogColor; in float vertexDistance; in vec4 vertexColor; in vec4 lightMapColor; in vec4 overlayColor; in vec2 texCoord0; in vec4 normal; out vec4 fragColor; void main() { vec4 color = texture(Sampler0, texCoord0); if (color.a < 0.100000) { discard; } color *= vertexColor * ColorModulator; color.rgb = mix(overlayColor.rgb, color.rgb, overlayColor.a); color *= lightMapColor; fragColor = linear_fog(color, vertexDistance, FogStart, FogEnd, FogColor); } version string: 150New VGPU Shader source: #version 320 es #define texture2D texture #define attribute in #define varying out precision highp float; precision highp int; in vec3 Position; in vec4 Color; in vec2 UV0; uniform mat4 ModelViewMat; uniform mat4 ProjMat; out vec4 vertexColor; out vec2 texCoord0; void main() { gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.00000); vertexColor = Color; texCoord0 = UV0; } New VGPU Shader conversion: #version 320 es #ifdef GL_OES_texture_storage_multisample_2d_array #extension GL_OES_texture_storage_multisample_2d_array : enable #endif #ifdef GL_EXT_texture_buffer #extension GL_EXT_texture_buffer : enable #endif #ifdef GL_EXT_texture_cube_map_array #extension GL_EXT_texture_cube_map_array : enable #endif #ifdef GL_EXT_shader_non_constant_global_initializers #extension GL_EXT_shader_non_constant_global_initializers : enable #endif precision highp float; precision lowp image2D; precision lowp image2DArray; precision lowp image3D; precision lowp imageCube; precision lowp sampler2D; precision lowp sampler3D; precision lowp sampler2DShadow; precision lowp samplerCubeShadow; precision lowp sampler2DArray; precision lowp sampler2DArrayShadow; precision lowp samplerCube; #ifdef GL_EXT_texture_buffer precision lowp samplerBuffer; precision lowp imageBuffer; #endif #ifdef GL_EXT_texture_cube_map_array precision lowp imageCubeArray; precision lowp samplerCubeArray; precision lowp samplerCubeArrayShadow; #endif #ifdef GL_OES_texture_storage_multisample_2d_array precision lowp sampler2DMS; precision lowp sampler2DMSArray; #endif in vec3 Position; in vec4 Color; in vec2 UV0; uniform mat4 ModelViewMat; uniform mat4 ProjMat; out vec4 vertexColor; out vec2 texCoord0; void main() { gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.00000); vertexColor = Color; texCoord0 = UV0; } version string: 150New VGPU Shader source: #version 320 es #define texture2D texture #define attribute in #define varying out precision highp float; precision highp int; #line 0 1 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, int shape) { if (shape == 0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 3 0 uniform sampler2D Sampler0; uniform mat4 ProjMat; uniform vec4 ColorModulator; uniform float FogStart; uniform float FogEnd; uniform vec4 FogColor; in vec4 vertexColor; in vec2 texCoord0; out vec4 fragColor; void main() { vec4 color = texture(Sampler0, texCoord0); color *= vertexColor * ColorModulator; float fragmentDistance = -ProjMat[3].z / ((gl_FragCoord.z) * -2.00000 + 1.00000 - ProjMat[2].z); fragColor = linear_fog(color, fragmentDistance, FogStart, FogEnd, FogColor); } New VGPU Shader conversion: #version 320 es #ifdef GL_OES_texture_storage_multisample_2d_array #extension GL_OES_texture_storage_multisample_2d_array : enable #endif #ifdef GL_EXT_texture_buffer #extension GL_EXT_texture_buffer : enable #endif #ifdef GL_EXT_texture_cube_map_array #extension GL_EXT_texture_cube_map_array : enable #endif #ifdef GL_EXT_shader_non_constant_global_initializers #extension GL_EXT_shader_non_constant_global_initializers : enable #endif precision highp float; precision lowp image2D; precision lowp image2DArray; precision lowp image3D; precision lowp imageCube; precision lowp sampler2D; precision lowp sampler3D; precision lowp sampler2DShadow; precision lowp samplerCubeShadow; precision lowp sampler2DArray; precision lowp sampler2DArrayShadow; precision lowp samplerCube; #ifdef GL_EXT_texture_buffer precision lowp samplerBuffer; precision lowp imageBuffer; #endif #ifdef GL_EXT_texture_cube_map_array precision lowp imageCubeArray; precision lowp samplerCubeArray; precision lowp samplerCubeArrayShadow; #endif #ifdef GL_OES_texture_storage_multisample_2d_array precision lowp sampler2DMS; precision lowp sampler2DMSArray; #endif #line 0 1 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, float shape) { if (shape == 0.0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 3 0 uniform sampler2D Sampler0; uniform mat4 ProjMat; uniform vec4 ColorModulator; uniform float FogStart; uniform float FogEnd; uniform vec4 FogColor; in vec4 vertexColor; in vec2 texCoord0; out vec4 fragColor; void main() { vec4 color = texture(Sampler0, texCoord0); color *= vertexColor * ColorModulator; float fragmentDistance = -ProjMat[3].z / ((gl_FragCoord.z) * -2.00000 + 1.00000 - ProjMat[2].z); fragColor = linear_fog(color, fragmentDistance, FogStart, FogEnd, FogColor); } version string: 150New VGPU Shader source: #version 320 es #define texture2D texture #define attribute in #define varying out precision highp float; precision highp int; #line 0 1 #define MINECRAFT_LIGHT_POWER (0.6) #define MINECRAFT_AMBIENT_LIGHT (0.4) vec4 minecraft_mix_light(vec3 lightDir0, vec3 lightDir1, vec3 normal, vec4 color) { lightDir0 = normalize(lightDir0); lightDir1 = normalize(lightDir1); float light0 = max(0.00000, dot(lightDir0, normal)); float light1 = max(0.00000, dot(lightDir1, normal)); float lightAccum = min(1.00000, (light0 + light1) * MINECRAFT_LIGHT_POWER + MINECRAFT_AMBIENT_LIGHT); return vec4(color.rgb * lightAccum, color.a); } vec4 minecraft_sample_lightmap(sampler2D lightMap, ivec2 uv) { return texture(lightMap, clamp(uv / 256.000, vec2(0.500000 / 16.0000), vec2(15.5000 / 16.0000))); } #line 0 2 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, int shape) { if (shape == 0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 4 0 in vec3 Position; in vec4 Color; in vec2 UV0; in ivec2 UV1; in ivec2 UV2; in vec3 Normal; uniform sampler2D Sampler1; uniform sampler2D Sampler2; uniform mat4 ModelViewMat; uniform mat4 ProjMat; uniform mat3 IViewRotMat; uniform int FogShape; uniform vec3 Light0_Direction; uniform vec3 Light1_Direction; out float vertexDistance; out vec4 vertexColor; out vec4 overlayColor; out vec2 texCoord0; out vec4 normal; void main() { gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.00000); vertexDistance = fog_distance(ModelViewMat, IViewRotMat * Position, FogShape); vertexColor = minecraft_mix_light(Light0_Direction, Light1_Direction, Normal, Color) * texelFetch(Sampler2, UV2 / 16, 0); overlayColor = texelFetch(Sampler1, UV1, 0); texCoord0 = UV0; normal = ProjMat * ModelViewMat * vec4(Normal, 0.00000); } New VGPU Shader conversion: #version 320 es #ifdef GL_OES_texture_storage_multisample_2d_array #extension GL_OES_texture_storage_multisample_2d_array : enable #endif #ifdef GL_EXT_texture_buffer #extension GL_EXT_texture_buffer : enable #endif #ifdef GL_EXT_texture_cube_map_array #extension GL_EXT_texture_cube_map_array : enable #endif #ifdef GL_EXT_shader_non_constant_global_initializers #extension GL_EXT_shader_non_constant_global_initializers : enable #endif precision highp float; precision lowp image2D; precision lowp image2DArray; precision lowp image3D; precision lowp imageCube; precision lowp sampler2D; precision lowp sampler3D; precision lowp sampler2DShadow; precision lowp samplerCubeShadow; precision lowp sampler2DArray; precision lowp sampler2DArrayShadow; precision lowp samplerCube; #ifdef GL_EXT_texture_buffer precision lowp samplerBuffer; precision lowp imageBuffer; #endif #ifdef GL_EXT_texture_cube_map_array precision lowp imageCubeArray; precision lowp samplerCubeArray; precision lowp samplerCubeArrayShadow; #endif #ifdef GL_OES_texture_storage_multisample_2d_array precision lowp sampler2DMS; precision lowp sampler2DMSArray; #endif vec4 vgpu_texelFetch(sampler2D sampler, vec2 P, float lod){return texelFetch(sampler, ivec2(P), int(lod));} vec4 vgpu_texelFetch(sampler3D sampler, vec3 P, float lod){return texelFetch(sampler, ivec3(P), int(lod));} vec4 vgpu_texelFetch(sampler2DArray sampler, vec3 P, float lod){return texelFetch(sampler, ivec3(P), int(lod));} #ifdef GL_EXT_texture_buffer vec4 vgpu_texelFetch(samplerBuffer sampler, float P){return texelFetch(sampler, int(P));} #endif #ifdef GL_OES_texture_storage_multisample_2d_array vec4 vgpu_texelFetch(sampler2DMS sampler, vec2 P, float _sample){return texelFetch(sampler, ivec2(P), int(_sample));} vec4 vgpu_texelFetch(sampler2DMSArray sampler, vec3 P, float _sample){return texelFetch(sampler, ivec3(P), int(_sample));} #endif #line 0 1 #define MINECRAFT_LIGHT_POWER (0.6) #define MINECRAFT_AMBIENT_LIGHT (0.4) vec4 minecraft_mix_light(vec3 lightDir0, vec3 lightDir1, vec3 normal, vec4 color) { lightDir0 = normalize(lightDir0); lightDir1 = normalize(lightDir1); float light0 = max(0.00000, dot(lightDir0, normal)); float light1 = max(0.00000, dot(lightDir1, normal)); float lightAccum = min(1.00000, (light0 + light1) * MINECRAFT_LIGHT_POWER + MINECRAFT_AMBIENT_LIGHT); return vec4(color.rgb * lightAccum, color.a); } vec4 minecraft_sample_lightmap(sampler2D lightMap, vec2 uv) { return texture(lightMap, clamp(uv / 256.000, vec2(0.500000 / 16.0000), vec2(15.5000 / 16.0000))); } #line 0 2 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, float shape) { if (shape == 0.0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 4 0 in vec3 Position; in vec4 Color; in vec2 UV0; in vec2 UV1; in vec2 UV2; in vec3 Normal; uniform sampler2D Sampler1; uniform sampler2D Sampler2; uniform mat4 ModelViewMat; uniform mat4 ProjMat; uniform mat3 IViewRotMat; uniform float FogShape; uniform vec3 Light0_Direction; uniform vec3 Light1_Direction; out float vertexDistance; out vec4 vertexColor; out vec4 overlayColor; out vec2 texCoord0; out vec4 normal; void main() { gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.00000); vertexDistance = fog_distance(ModelViewMat, IViewRotMat * Position, FogShape); vertexColor = minecraft_mix_light(Light0_Direction, Light1_Direction, Normal, Color) * vgpu_texelFetch(Sampler2, UV2 / 16.0, 0.0); overlayColor = vgpu_texelFetch(Sampler1, UV1, 0.0); texCoord0 = UV0; normal = ProjMat * ModelViewMat * vec4(Normal, 0.00000); } version string: 150New VGPU Shader source: #version 320 es #define texture2D texture #define attribute in #define varying out precision highp float; precision highp int; #line 0 1 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, int shape) { if (shape == 0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 3 0 uniform sampler2D Sampler0; uniform vec4 ColorModulator; uniform float FogStart; uniform float FogEnd; uniform vec4 FogColor; in float vertexDistance; in vec4 vertexColor; in vec4 overlayColor; in vec2 texCoord0; in vec4 normal; out vec4 fragColor; void main() { vec4 color = texture(Sampler0, texCoord0); if (color.a < 0.100000) { discard; } color.rgb = mix(overlayColor.rgb, color.rgb, overlayColor.a); color *= vertexColor * ColorModulator; fragColor = linear_fog(color, vertexDistance, FogStart, FogEnd, FogColor); } New VGPU Shader conversion: #version 320 es #ifdef GL_OES_texture_storage_multisample_2d_array #extension GL_OES_texture_storage_multisample_2d_array : enable #endif #ifdef GL_EXT_texture_buffer #extension GL_EXT_texture_buffer : enable #endif #ifdef GL_EXT_texture_cube_map_array #extension GL_EXT_texture_cube_map_array : enable #endif #ifdef GL_EXT_shader_non_constant_global_initializers #extension GL_EXT_shader_non_constant_global_initializers : enable #endif precision highp float; precision lowp image2D; precision lowp image2DArray; precision lowp image3D; precision lowp imageCube; precision lowp sampler2D; precision lowp sampler3D; precision lowp sampler2DShadow; precision lowp samplerCubeShadow; precision lowp sampler2DArray; precision lowp sampler2DArrayShadow; precision lowp samplerCube; #ifdef GL_EXT_texture_buffer precision lowp samplerBuffer; precision lowp imageBuffer; #endif #ifdef GL_EXT_texture_cube_map_array precision lowp imageCubeArray; precision lowp samplerCubeArray; precision lowp samplerCubeArrayShadow; #endif #ifdef GL_OES_texture_storage_multisample_2d_array precision lowp sampler2DMS; precision lowp sampler2DMSArray; #endif #line 0 1 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, float shape) { if (shape == 0.0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 3 0 uniform sampler2D Sampler0; uniform vec4 ColorModulator; uniform float FogStart; uniform float FogEnd; uniform vec4 FogColor; in float vertexDistance; in vec4 vertexColor; in vec4 overlayColor; in vec2 texCoord0; in vec4 normal; out vec4 fragColor; void main() { vec4 color = texture(Sampler0, texCoord0); if (color.a < 0.100000) { discard; } color.rgb = mix(overlayColor.rgb, color.rgb, overlayColor.a); color *= vertexColor * ColorModulator; fragColor = linear_fog(color, vertexDistance, FogStart, FogEnd, FogColor); } version string: 150New VGPU Shader source: #version 320 es #define texture2D texture #define attribute in #define varying out precision highp float; precision highp int; #line 0 1 #define MINECRAFT_LIGHT_POWER (0.6) #define MINECRAFT_AMBIENT_LIGHT (0.4) vec4 minecraft_mix_light(vec3 lightDir0, vec3 lightDir1, vec3 normal, vec4 color) { lightDir0 = normalize(lightDir0); lightDir1 = normalize(lightDir1); float light0 = max(0.00000, dot(lightDir0, normal)); float light1 = max(0.00000, dot(lightDir1, normal)); float lightAccum = min(1.00000, (light0 + light1) * MINECRAFT_LIGHT_POWER + MINECRAFT_AMBIENT_LIGHT); return vec4(color.rgb * lightAccum, color.a); } vec4 minecraft_sample_lightmap(sampler2D lightMap, ivec2 uv) { return texture(lightMap, clamp(uv / 256.000, vec2(0.500000 / 16.0000), vec2(15.5000 / 16.0000))); } #line 0 2 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, int shape) { if (shape == 0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 4 0 in vec3 Position; in vec4 Color; in vec2 UV0; in ivec2 UV2; in vec3 Normal; uniform sampler2D Sampler2; uniform mat4 ModelViewMat; uniform mat4 ProjMat; uniform mat3 IViewRotMat; uniform int FogShape; uniform vec3 Light0_Direction; uniform vec3 Light1_Direction; out float vertexDistance; out vec4 vertexColor; out vec2 texCoord0; out vec4 normal; void main() { gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.00000); vertexDistance = fog_distance(ModelViewMat, IViewRotMat * Position, FogShape); vertexColor = minecraft_mix_light(Light0_Direction, Light1_Direction, Normal, Color) * texelFetch(Sampler2, UV2 / 16, 0); texCoord0 = UV0; normal = ProjMat * ModelViewMat * vec4(Normal, 0.00000); } New VGPU Shader conversion: #version 320 es #ifdef GL_OES_texture_storage_multisample_2d_array #extension GL_OES_texture_storage_multisample_2d_array : enable #endif #ifdef GL_EXT_texture_buffer #extension GL_EXT_texture_buffer : enable #endif #ifdef GL_EXT_texture_cube_map_array #extension GL_EXT_texture_cube_map_array : enable #endif #ifdef GL_EXT_shader_non_constant_global_initializers #extension GL_EXT_shader_non_constant_global_initializers : enable #endif precision highp float; precision lowp image2D; precision lowp image2DArray; precision lowp image3D; precision lowp imageCube; precision lowp sampler2D; precision lowp sampler3D; precision lowp sampler2DShadow; precision lowp samplerCubeShadow; precision lowp sampler2DArray; precision lowp sampler2DArrayShadow; precision lowp samplerCube; #ifdef GL_EXT_texture_buffer precision lowp samplerBuffer; precision lowp imageBuffer; #endif #ifdef GL_EXT_texture_cube_map_array precision lowp imageCubeArray; precision lowp samplerCubeArray; precision lowp samplerCubeArrayShadow; #endif #ifdef GL_OES_texture_storage_multisample_2d_array precision lowp sampler2DMS; precision lowp sampler2DMSArray; #endif vec4 vgpu_texelFetch(sampler2D sampler, vec2 P, float lod){return texelFetch(sampler, ivec2(P), int(lod));} vec4 vgpu_texelFetch(sampler3D sampler, vec3 P, float lod){return texelFetch(sampler, ivec3(P), int(lod));} vec4 vgpu_texelFetch(sampler2DArray sampler, vec3 P, float lod){return texelFetch(sampler, ivec3(P), int(lod));} #ifdef GL_EXT_texture_buffer vec4 vgpu_texelFetch(samplerBuffer sampler, float P){return texelFetch(sampler, int(P));} #endif #ifdef GL_OES_texture_storage_multisample_2d_array vec4 vgpu_texelFetch(sampler2DMS sampler, vec2 P, float _sample){return texelFetch(sampler, ivec2(P), int(_sample));} vec4 vgpu_texelFetch(sampler2DMSArray sampler, vec3 P, float _sample){return texelFetch(sampler, ivec3(P), int(_sample));} #endif #line 0 1 #define MINECRAFT_LIGHT_POWER (0.6) #define MINECRAFT_AMBIENT_LIGHT (0.4) vec4 minecraft_mix_light(vec3 lightDir0, vec3 lightDir1, vec3 normal, vec4 color) { lightDir0 = normalize(lightDir0); lightDir1 = normalize(lightDir1); float light0 = max(0.00000, dot(lightDir0, normal)); float light1 = max(0.00000, dot(lightDir1, normal)); float lightAccum = min(1.00000, (light0 + light1) * MINECRAFT_LIGHT_POWER + MINECRAFT_AMBIENT_LIGHT); return vec4(color.rgb * lightAccum, color.a); } vec4 minecraft_sample_lightmap(sampler2D lightMap, vec2 uv) { return texture(lightMap, clamp(uv / 256.000, vec2(0.500000 / 16.0000), vec2(15.5000 / 16.0000))); } #line 0 2 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, float shape) { if (shape == 0.0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 4 0 in vec3 Position; in vec4 Color; in vec2 UV0; in vec2 UV2; in vec3 Normal; uniform sampler2D Sampler2; uniform mat4 ModelViewMat; uniform mat4 ProjMat; uniform mat3 IViewRotMat; uniform float FogShape; uniform vec3 Light0_Direction; uniform vec3 Light1_Direction; out float vertexDistance; out vec4 vertexColor; out vec2 texCoord0; out vec4 normal; void main() { gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.00000); vertexDistance = fog_distance(ModelViewMat, IViewRotMat * Position, FogShape); vertexColor = minecraft_mix_light(Light0_Direction, Light1_Direction, Normal, Color) * vgpu_texelFetch(Sampler2, UV2 / 16.0, 0.0); texCoord0 = UV0; normal = ProjMat * ModelViewMat * vec4(Normal, 0.00000); } version string: 150New VGPU Shader source: #version 320 es #define texture2D texture #define attribute in #define varying out precision highp float; precision highp int; #line 0 1 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, int shape) { if (shape == 0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 3 0 uniform sampler2D Sampler0; uniform vec4 ColorModulator; uniform float FogStart; uniform float FogEnd; uniform vec4 FogColor; in float vertexDistance; in vec4 vertexColor; in vec2 texCoord0; in vec4 normal; out vec4 fragColor; void main() { vec4 color = texture(Sampler0, texCoord0) * vertexColor * ColorModulator; fragColor = linear_fog(color, vertexDistance, FogStart, FogEnd, FogColor); } New VGPU Shader conversion: #version 320 es #ifdef GL_OES_texture_storage_multisample_2d_array #extension GL_OES_texture_storage_multisample_2d_array : enable #endif #ifdef GL_EXT_texture_buffer #extension GL_EXT_texture_buffer : enable #endif #ifdef GL_EXT_texture_cube_map_array #extension GL_EXT_texture_cube_map_array : enable #endif #ifdef GL_EXT_shader_non_constant_global_initializers #extension GL_EXT_shader_non_constant_global_initializers : enable #endif precision highp float; precision lowp image2D; precision lowp image2DArray; precision lowp image3D; precision lowp imageCube; precision lowp sampler2D; precision lowp sampler3D; precision lowp sampler2DShadow; precision lowp samplerCubeShadow; precision lowp sampler2DArray; precision lowp sampler2DArrayShadow; precision lowp samplerCube; #ifdef GL_EXT_texture_buffer precision lowp samplerBuffer; precision lowp imageBuffer; #endif #ifdef GL_EXT_texture_cube_map_array precision lowp imageCubeArray; precision lowp samplerCubeArray; precision lowp samplerCubeArrayShadow; #endif #ifdef GL_OES_texture_storage_multisample_2d_array precision lowp sampler2DMS; precision lowp sampler2DMSArray; #endif #line 0 1 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, float shape) { if (shape == 0.0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 3 0 uniform sampler2D Sampler0; uniform vec4 ColorModulator; uniform float FogStart; uniform float FogEnd; uniform vec4 FogColor; in float vertexDistance; in vec4 vertexColor; in vec2 texCoord0; in vec4 normal; out vec4 fragColor; void main() { vec4 color = texture(Sampler0, texCoord0) * vertexColor * ColorModulator; fragColor = linear_fog(color, vertexDistance, FogStart, FogEnd, FogColor); } version string: 150New VGPU Shader source: #version 320 es #define texture2D texture #define attribute in #define varying out precision highp float; precision highp int; #line 0 1 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, int shape) { if (shape == 0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 3 0 in vec3 Position; in vec4 Color; in vec2 UV0; uniform mat4 ModelViewMat; uniform mat4 ProjMat; uniform mat3 IViewRotMat; uniform int FogShape; out float vertexDistance; out vec4 vertexColor; out vec2 texCoord0; void main() { gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.00000); vertexDistance = fog_distance(ModelViewMat, IViewRotMat * Position, FogShape); vertexColor = Color; texCoord0 = UV0; } New VGPU Shader conversion: #version 320 es #ifdef GL_OES_texture_storage_multisample_2d_array #extension GL_OES_texture_storage_multisample_2d_array : enable #endif #ifdef GL_EXT_texture_buffer #extension GL_EXT_texture_buffer : enable #endif #ifdef GL_EXT_texture_cube_map_array #extension GL_EXT_texture_cube_map_array : enable #endif #ifdef GL_EXT_shader_non_constant_global_initializers #extension GL_EXT_shader_non_constant_global_initializers : enable #endif precision highp float; precision lowp image2D; precision lowp image2DArray; precision lowp image3D; precision lowp imageCube; precision lowp sampler2D; precision lowp sampler3D; precision lowp sampler2DShadow; precision lowp samplerCubeShadow; precision lowp sampler2DArray; precision lowp sampler2DArrayShadow; precision lowp samplerCube; #ifdef GL_EXT_texture_buffer precision lowp samplerBuffer; precision lowp imageBuffer; #endif #ifdef GL_EXT_texture_cube_map_array precision lowp imageCubeArray; precision lowp samplerCubeArray; precision lowp samplerCubeArrayShadow; #endif #ifdef GL_OES_texture_storage_multisample_2d_array precision lowp sampler2DMS; precision lowp sampler2DMSArray; #endif #line 0 1 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, float shape) { if (shape == 0.0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 3 0 in vec3 Position; in vec4 Color; in vec2 UV0; uniform mat4 ModelViewMat; uniform mat4 ProjMat; uniform mat3 IViewRotMat; uniform float FogShape; out float vertexDistance; out vec4 vertexColor; out vec2 texCoord0; void main() { gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.00000); vertexDistance = fog_distance(ModelViewMat, IViewRotMat * Position, FogShape); vertexColor = Color; texCoord0 = UV0; } version string: 150New VGPU Shader source: #version 320 es #define texture2D texture #define attribute in #define varying out precision highp float; precision highp int; #line 0 1 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, int shape) { if (shape == 0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 3 0 uniform sampler2D Sampler0; uniform vec4 ColorModulator; uniform float FogStart; uniform float FogEnd; uniform vec4 FogColor; in float vertexDistance; in vec4 vertexColor; in vec2 texCoord0; out vec4 fragColor; void main() { vec4 color = texture(Sampler0, clamp(texCoord0, 0.00000, 1.00000)); color *= vertexColor * ColorModulator; fragColor = linear_fog(color, vertexDistance, FogStart, FogEnd, FogColor); } New VGPU Shader conversion: #version 320 es #ifdef GL_OES_texture_storage_multisample_2d_array #extension GL_OES_texture_storage_multisample_2d_array : enable #endif #ifdef GL_EXT_texture_buffer #extension GL_EXT_texture_buffer : enable #endif #ifdef GL_EXT_texture_cube_map_array #extension GL_EXT_texture_cube_map_array : enable #endif #ifdef GL_EXT_shader_non_constant_global_initializers #extension GL_EXT_shader_non_constant_global_initializers : enable #endif precision highp float; precision lowp image2D; precision lowp image2DArray; precision lowp image3D; precision lowp imageCube; precision lowp sampler2D; precision lowp sampler3D; precision lowp sampler2DShadow; precision lowp samplerCubeShadow; precision lowp sampler2DArray; precision lowp sampler2DArrayShadow; precision lowp samplerCube; #ifdef GL_EXT_texture_buffer precision lowp samplerBuffer; precision lowp imageBuffer; #endif #ifdef GL_EXT_texture_cube_map_array precision lowp imageCubeArray; precision lowp samplerCubeArray; precision lowp samplerCubeArrayShadow; #endif #ifdef GL_OES_texture_storage_multisample_2d_array precision lowp sampler2DMS; precision lowp sampler2DMSArray; #endif #line 0 1 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, float shape) { if (shape == 0.0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 3 0 uniform sampler2D Sampler0; uniform vec4 ColorModulator; uniform float FogStart; uniform float FogEnd; uniform vec4 FogColor; in float vertexDistance; in vec4 vertexColor; in vec2 texCoord0; out vec4 fragColor; void main() { vec4 color = texture(Sampler0, clamp(texCoord0, 0.00000, 1.00000)); color *= vertexColor * ColorModulator; fragColor = linear_fog(color, vertexDistance, FogStart, FogEnd, FogColor); } version string: 150New VGPU Shader source: #version 320 es #define texture2D texture #define attribute in #define varying out precision highp float; precision highp int; in vec3 Position; in vec4 Color; in vec2 UV0; in vec2 UV1; in vec2 UV2; in vec3 Normal; uniform mat4 ModelViewMat; uniform mat4 ProjMat; out vec4 vertexColor; out vec2 texCoord0; out vec2 texCoord1; out vec2 texCoord2; out vec4 normal; void main() { gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.00000); vertexColor = Color; texCoord0 = UV0; texCoord1 = UV1; texCoord2 = UV2; normal = ProjMat * ModelViewMat * vec4(Normal, 0.00000); } New VGPU Shader conversion: #version 320 es #ifdef GL_OES_texture_storage_multisample_2d_array #extension GL_OES_texture_storage_multisample_2d_array : enable #endif #ifdef GL_EXT_texture_buffer #extension GL_EXT_texture_buffer : enable #endif #ifdef GL_EXT_texture_cube_map_array #extension GL_EXT_texture_cube_map_array : enable #endif #ifdef GL_EXT_shader_non_constant_global_initializers #extension GL_EXT_shader_non_constant_global_initializers : enable #endif precision highp float; precision lowp image2D; precision lowp image2DArray; precision lowp image3D; precision lowp imageCube; precision lowp sampler2D; precision lowp sampler3D; precision lowp sampler2DShadow; precision lowp samplerCubeShadow; precision lowp sampler2DArray; precision lowp sampler2DArrayShadow; precision lowp samplerCube; #ifdef GL_EXT_texture_buffer precision lowp samplerBuffer; precision lowp imageBuffer; #endif #ifdef GL_EXT_texture_cube_map_array precision lowp imageCubeArray; precision lowp samplerCubeArray; precision lowp samplerCubeArrayShadow; #endif #ifdef GL_OES_texture_storage_multisample_2d_array precision lowp sampler2DMS; precision lowp sampler2DMSArray; #endif in vec3 Position; in vec4 Color; in vec2 UV0; in vec2 UV1; in vec2 UV2; in vec3 Normal; uniform mat4 ModelViewMat; uniform mat4 ProjMat; out vec4 vertexColor; out vec2 texCoord0; out vec2 texCoord1; out vec2 texCoord2; out vec4 normal; void main() { gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.00000); vertexColor = Color; texCoord0 = UV0; texCoord1 = UV1; texCoord2 = UV2; normal = ProjMat * ModelViewMat * vec4(Normal, 0.00000); } version string: 150New VGPU Shader source: #version 320 es #define texture2D texture #define attribute in #define varying out precision highp float; precision highp int; uniform sampler2D Sampler0; in vec4 vertexColor; in vec2 texCoord0; in vec2 texCoord1; in vec2 texCoord2; in vec4 normal; out vec4 fragColor; void main() { vec4 color = texture(Sampler0, texCoord0); if (color.a < vertexColor.a) { discard; } fragColor = color; } New VGPU Shader conversion: #version 320 es #ifdef GL_OES_texture_storage_multisample_2d_array #extension GL_OES_texture_storage_multisample_2d_array : enable #endif #ifdef GL_EXT_texture_buffer #extension GL_EXT_texture_buffer : enable #endif #ifdef GL_EXT_texture_cube_map_array #extension GL_EXT_texture_cube_map_array : enable #endif #ifdef GL_EXT_shader_non_constant_global_initializers #extension GL_EXT_shader_non_constant_global_initializers : enable #endif precision highp float; precision lowp image2D; precision lowp image2DArray; precision lowp image3D; precision lowp imageCube; precision lowp sampler2D; precision lowp sampler3D; precision lowp sampler2DShadow; precision lowp samplerCubeShadow; precision lowp sampler2DArray; precision lowp sampler2DArrayShadow; precision lowp samplerCube; #ifdef GL_EXT_texture_buffer precision lowp samplerBuffer; precision lowp imageBuffer; #endif #ifdef GL_EXT_texture_cube_map_array precision lowp imageCubeArray; precision lowp samplerCubeArray; precision lowp samplerCubeArrayShadow; #endif #ifdef GL_OES_texture_storage_multisample_2d_array precision lowp sampler2DMS; precision lowp sampler2DMSArray; #endif uniform sampler2D Sampler0; in vec4 vertexColor; in vec2 texCoord0; in vec2 texCoord1; in vec2 texCoord2; in vec4 normal; out vec4 fragColor; void main() { vec4 color = texture(Sampler0, texCoord0); if (color.a < vertexColor.a) { discard; } fragColor = color; } version string: 150New VGPU Shader source: #version 320 es #define texture2D texture #define attribute in #define varying out precision highp float; precision highp int; #line 0 1 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, int shape) { if (shape == 0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 3 0 in vec3 Position; in vec4 Color; in vec2 UV0; uniform mat4 ModelViewMat; uniform mat4 ProjMat; uniform mat3 IViewRotMat; uniform int FogShape; out float vertexDistance; out vec4 vertexColor; out vec2 texCoord0; void main() { gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.00000); vertexDistance = fog_distance(ModelViewMat, IViewRotMat * Position, FogShape); vertexColor = Color; texCoord0 = UV0; } New VGPU Shader conversion: #version 320 es #ifdef GL_OES_texture_storage_multisample_2d_array #extension GL_OES_texture_storage_multisample_2d_array : enable #endif #ifdef GL_EXT_texture_buffer #extension GL_EXT_texture_buffer : enable #endif #ifdef GL_EXT_texture_cube_map_array #extension GL_EXT_texture_cube_map_array : enable #endif #ifdef GL_EXT_shader_non_constant_global_initializers #extension GL_EXT_shader_non_constant_global_initializers : enable #endif precision highp float; precision lowp image2D; precision lowp image2DArray; precision lowp image3D; precision lowp imageCube; precision lowp sampler2D; precision lowp sampler3D; precision lowp sampler2DShadow; precision lowp samplerCubeShadow; precision lowp sampler2DArray; precision lowp sampler2DArrayShadow; precision lowp samplerCube; #ifdef GL_EXT_texture_buffer precision lowp samplerBuffer; precision lowp imageBuffer; #endif #ifdef GL_EXT_texture_cube_map_array precision lowp imageCubeArray; precision lowp samplerCubeArray; precision lowp samplerCubeArrayShadow; #endif #ifdef GL_OES_texture_storage_multisample_2d_array precision lowp sampler2DMS; precision lowp sampler2DMSArray; #endif #line 0 1 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, float shape) { if (shape == 0.0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 3 0 in vec3 Position; in vec4 Color; in vec2 UV0; uniform mat4 ModelViewMat; uniform mat4 ProjMat; uniform mat3 IViewRotMat; uniform float FogShape; out float vertexDistance; out vec4 vertexColor; out vec2 texCoord0; void main() { gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.00000); vertexDistance = fog_distance(ModelViewMat, IViewRotMat * Position, FogShape); vertexColor = Color; texCoord0 = UV0; } version string: 150New VGPU Shader source: #version 320 es #define texture2D texture #define attribute in #define varying out precision highp float; precision highp int; #line 0 1 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, int shape) { if (shape == 0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 3 0 uniform sampler2D Sampler0; uniform vec4 ColorModulator; uniform float FogStart; uniform float FogEnd; in float vertexDistance; in vec4 vertexColor; in vec2 texCoord0; out vec4 fragColor; void main() { vec4 color = texture(Sampler0, texCoord0) * vertexColor; fragColor = color * ColorModulator * linear_fog_fade(vertexDistance, FogStart, FogEnd); } New VGPU Shader conversion: #version 320 es #ifdef GL_OES_texture_storage_multisample_2d_array #extension GL_OES_texture_storage_multisample_2d_array : enable #endif #ifdef GL_EXT_texture_buffer #extension GL_EXT_texture_buffer : enable #endif #ifdef GL_EXT_texture_cube_map_array #extension GL_EXT_texture_cube_map_array : enable #endif #ifdef GL_EXT_shader_non_constant_global_initializers #extension GL_EXT_shader_non_constant_global_initializers : enable #endif precision highp float; precision lowp image2D; precision lowp image2DArray; precision lowp image3D; precision lowp imageCube; precision lowp sampler2D; precision lowp sampler3D; precision lowp sampler2DShadow; precision lowp samplerCubeShadow; precision lowp sampler2DArray; precision lowp sampler2DArrayShadow; precision lowp samplerCube; #ifdef GL_EXT_texture_buffer precision lowp samplerBuffer; precision lowp imageBuffer; #endif #ifdef GL_EXT_texture_cube_map_array precision lowp imageCubeArray; precision lowp samplerCubeArray; precision lowp samplerCubeArrayShadow; #endif #ifdef GL_OES_texture_storage_multisample_2d_array precision lowp sampler2DMS; precision lowp sampler2DMSArray; #endif #line 0 1 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, float shape) { if (shape == 0.0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 3 0 uniform sampler2D Sampler0; uniform vec4 ColorModulator; uniform float FogStart; uniform float FogEnd; in float vertexDistance; in vec4 vertexColor; in vec2 texCoord0; out vec4 fragColor; void main() { vec4 color = texture(Sampler0, texCoord0) * vertexColor; fragColor = color * ColorModulator * linear_fog_fade(vertexDistance, FogStart, FogEnd); } version string: 150New VGPU Shader source: #version 320 es #define texture2D texture #define attribute in #define varying out precision highp float; precision highp int; #line 0 1 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, int shape) { if (shape == 0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 3 0 in vec3 Position; in vec4 Color; in vec2 UV0; uniform mat4 ModelViewMat; uniform mat4 ProjMat; uniform mat4 TextureMat; uniform int FogShape; out float vertexDistance; out vec4 vertexColor; out vec2 texCoord0; void main() { gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.00000); vertexDistance = fog_distance(ModelViewMat, Position, FogShape); vertexColor = Color; texCoord0 = (TextureMat * vec4(UV0, 0.00000, 1.00000)).xy; } New VGPU Shader conversion: #version 320 es #ifdef GL_OES_texture_storage_multisample_2d_array #extension GL_OES_texture_storage_multisample_2d_array : enable #endif #ifdef GL_EXT_texture_buffer #extension GL_EXT_texture_buffer : enable #endif #ifdef GL_EXT_texture_cube_map_array #extension GL_EXT_texture_cube_map_array : enable #endif #ifdef GL_EXT_shader_non_constant_global_initializers #extension GL_EXT_shader_non_constant_global_initializers : enable #endif precision highp float; precision lowp image2D; precision lowp image2DArray; precision lowp image3D; precision lowp imageCube; precision lowp sampler2D; precision lowp sampler3D; precision lowp sampler2DShadow; precision lowp samplerCubeShadow; precision lowp sampler2DArray; precision lowp sampler2DArrayShadow; precision lowp samplerCube; #ifdef GL_EXT_texture_buffer precision lowp samplerBuffer; precision lowp imageBuffer; #endif #ifdef GL_EXT_texture_cube_map_array precision lowp imageCubeArray; precision lowp samplerCubeArray; precision lowp samplerCubeArrayShadow; #endif #ifdef GL_OES_texture_storage_multisample_2d_array precision lowp sampler2DMS; precision lowp sampler2DMSArray; #endif #line 0 1 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, float shape) { if (shape == 0.0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 3 0 in vec3 Position; in vec4 Color; in vec2 UV0; uniform mat4 ModelViewMat; uniform mat4 ProjMat; uniform mat4 TextureMat; uniform float FogShape; out float vertexDistance; out vec4 vertexColor; out vec2 texCoord0; void main() { gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.00000); vertexDistance = fog_distance(ModelViewMat, Position, FogShape); vertexColor = Color; texCoord0 = (TextureMat * vec4(UV0, 0.00000, 1.00000)).xy; } version string: 150New VGPU Shader source: #version 320 es #define texture2D texture #define attribute in #define varying out precision highp float; precision highp int; #line 0 1 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, int shape) { if (shape == 0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 3 0 uniform sampler2D Sampler0; uniform vec4 ColorModulator; uniform float FogStart; uniform float FogEnd; in float vertexDistance; in vec4 vertexColor; in vec2 texCoord0; out vec4 fragColor; void main() { vec4 color = texture(Sampler0, texCoord0) * vertexColor * ColorModulator; if (color.a < 0.100000) { discard; } fragColor = color * linear_fog_fade(vertexDistance, FogStart, FogEnd); } New VGPU Shader conversion: #version 320 es #ifdef GL_OES_texture_storage_multisample_2d_array #extension GL_OES_texture_storage_multisample_2d_array : enable #endif #ifdef GL_EXT_texture_buffer #extension GL_EXT_texture_buffer : enable #endif #ifdef GL_EXT_texture_cube_map_array #extension GL_EXT_texture_cube_map_array : enable #endif #ifdef GL_EXT_shader_non_constant_global_initializers #extension GL_EXT_shader_non_constant_global_initializers : enable #endif precision highp float; precision lowp image2D; precision lowp image2DArray; precision lowp image3D; precision lowp imageCube; precision lowp sampler2D; precision lowp sampler3D; precision lowp sampler2DShadow; precision lowp samplerCubeShadow; precision lowp sampler2DArray; precision lowp sampler2DArrayShadow; precision lowp samplerCube; #ifdef GL_EXT_texture_buffer precision lowp samplerBuffer; precision lowp imageBuffer; #endif #ifdef GL_EXT_texture_cube_map_array precision lowp imageCubeArray; precision lowp samplerCubeArray; precision lowp samplerCubeArrayShadow; #endif #ifdef GL_OES_texture_storage_multisample_2d_array precision lowp sampler2DMS; precision lowp sampler2DMSArray; #endif #line 0 1 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, float shape) { if (shape == 0.0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 3 0 uniform sampler2D Sampler0; uniform vec4 ColorModulator; uniform float FogStart; uniform float FogEnd; in float vertexDistance; in vec4 vertexColor; in vec2 texCoord0; out vec4 fragColor; void main() { vec4 color = texture(Sampler0, texCoord0) * vertexColor * ColorModulator; if (color.a < 0.100000) { discard; } fragColor = color * linear_fog_fade(vertexDistance, FogStart, FogEnd); } version string: 150New VGPU Shader source: #version 320 es #define texture2D texture #define attribute in #define varying out precision highp float; precision highp int; #line 0 1 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, int shape) { if (shape == 0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 3 0 in vec3 Position; in vec4 Color; in ivec2 UV2; uniform sampler2D Sampler2; uniform mat4 ModelViewMat; uniform mat4 ProjMat; uniform mat3 IViewRotMat; uniform vec4 ColorModulator; uniform int FogShape; out float vertexDistance; flat out vec4 vertexColor; void main() { gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.00000); vertexDistance = fog_distance(ModelViewMat, IViewRotMat * Position, FogShape); vertexColor = Color * ColorModulator * texelFetch(Sampler2, UV2 / 16, 0); } New VGPU Shader conversion: #version 320 es #ifdef GL_OES_texture_storage_multisample_2d_array #extension GL_OES_texture_storage_multisample_2d_array : enable #endif #ifdef GL_EXT_texture_buffer #extension GL_EXT_texture_buffer : enable #endif #ifdef GL_EXT_texture_cube_map_array #extension GL_EXT_texture_cube_map_array : enable #endif #ifdef GL_EXT_shader_non_constant_global_initializers #extension GL_EXT_shader_non_constant_global_initializers : enable #endif precision highp float; precision lowp image2D; precision lowp image2DArray; precision lowp image3D; precision lowp imageCube; precision lowp sampler2D; precision lowp sampler3D; precision lowp sampler2DShadow; precision lowp samplerCubeShadow; precision lowp sampler2DArray; precision lowp sampler2DArrayShadow; precision lowp samplerCube; #ifdef GL_EXT_texture_buffer precision lowp samplerBuffer; precision lowp imageBuffer; #endif #ifdef GL_EXT_texture_cube_map_array precision lowp imageCubeArray; precision lowp samplerCubeArray; precision lowp samplerCubeArrayShadow; #endif #ifdef GL_OES_texture_storage_multisample_2d_array precision lowp sampler2DMS; precision lowp sampler2DMSArray; #endif vec4 vgpu_texelFetch(sampler2D sampler, vec2 P, float lod){return texelFetch(sampler, ivec2(P), int(lod));} vec4 vgpu_texelFetch(sampler3D sampler, vec3 P, float lod){return texelFetch(sampler, ivec3(P), int(lod));} vec4 vgpu_texelFetch(sampler2DArray sampler, vec3 P, float lod){return texelFetch(sampler, ivec3(P), int(lod));} #ifdef GL_EXT_texture_buffer vec4 vgpu_texelFetch(samplerBuffer sampler, float P){return texelFetch(sampler, int(P));} #endif #ifdef GL_OES_texture_storage_multisample_2d_array vec4 vgpu_texelFetch(sampler2DMS sampler, vec2 P, float _sample){return texelFetch(sampler, ivec2(P), int(_sample));} vec4 vgpu_texelFetch(sampler2DMSArray sampler, vec3 P, float _sample){return texelFetch(sampler, ivec3(P), int(_sample));} #endif #line 0 1 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, float shape) { if (shape == 0.0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 3 0 in vec3 Position; in vec4 Color; in vec2 UV2; uniform sampler2D Sampler2; uniform mat4 ModelViewMat; uniform mat4 ProjMat; uniform mat3 IViewRotMat; uniform vec4 ColorModulator; uniform float FogShape; out float vertexDistance; flat out vec4 vertexColor; void main() { gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.00000); vertexDistance = fog_distance(ModelViewMat, IViewRotMat * Position, FogShape); vertexColor = Color * ColorModulator * vgpu_texelFetch(Sampler2, UV2 / 16.0, 0.0); } version string: 150New VGPU Shader source: #version 320 es #define texture2D texture #define attribute in #define varying out precision highp float; precision highp int; #line 0 1 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, int shape) { if (shape == 0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 3 0 uniform float FogStart; uniform float FogEnd; uniform vec4 FogColor; in float vertexDistance; flat in vec4 vertexColor; out vec4 fragColor; void main() { fragColor = linear_fog(vertexColor, vertexDistance, FogStart, FogEnd, FogColor); } New VGPU Shader conversion: #version 320 es #ifdef GL_OES_texture_storage_multisample_2d_array #extension GL_OES_texture_storage_multisample_2d_array : enable #endif #ifdef GL_EXT_texture_buffer #extension GL_EXT_texture_buffer : enable #endif #ifdef GL_EXT_texture_cube_map_array #extension GL_EXT_texture_cube_map_array : enable #endif #ifdef GL_EXT_shader_non_constant_global_initializers #extension GL_EXT_shader_non_constant_global_initializers : enable #endif precision highp float; precision lowp image2D; precision lowp image2DArray; precision lowp image3D; precision lowp imageCube; precision lowp sampler2D; precision lowp sampler3D; precision lowp sampler2DShadow; precision lowp samplerCubeShadow; precision lowp sampler2DArray; precision lowp sampler2DArrayShadow; precision lowp samplerCube; #ifdef GL_EXT_texture_buffer precision lowp samplerBuffer; precision lowp imageBuffer; #endif #ifdef GL_EXT_texture_cube_map_array precision lowp imageCubeArray; precision lowp samplerCubeArray; precision lowp samplerCubeArrayShadow; #endif #ifdef GL_OES_texture_storage_multisample_2d_array precision lowp sampler2DMS; precision lowp sampler2DMSArray; #endif #line 0 1 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, float shape) { if (shape == 0.0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 3 0 uniform float FogStart; uniform float FogEnd; uniform vec4 FogColor; in float vertexDistance; flat in vec4 vertexColor; out vec4 fragColor; void main() { fragColor = linear_fog(vertexColor, vertexDistance, FogStart, FogEnd, FogColor); } version string: 150New VGPU Shader source: #version 320 es #define texture2D texture #define attribute in #define varying out precision highp float; precision highp int; in vec3 Position; uniform mat4 ModelViewMat; uniform mat4 ProjMat; void main() { gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.00000); } New VGPU Shader conversion: #version 320 es #ifdef GL_OES_texture_storage_multisample_2d_array #extension GL_OES_texture_storage_multisample_2d_array : enable #endif #ifdef GL_EXT_texture_buffer #extension GL_EXT_texture_buffer : enable #endif #ifdef GL_EXT_texture_cube_map_array #extension GL_EXT_texture_cube_map_array : enable #endif #ifdef GL_EXT_shader_non_constant_global_initializers #extension GL_EXT_shader_non_constant_global_initializers : enable #endif precision highp float; precision lowp image2D; precision lowp image2DArray; precision lowp image3D; precision lowp imageCube; precision lowp sampler2D; precision lowp sampler3D; precision lowp sampler2DShadow; precision lowp samplerCubeShadow; precision lowp sampler2DArray; precision lowp sampler2DArrayShadow; precision lowp samplerCube; #ifdef GL_EXT_texture_buffer precision lowp samplerBuffer; precision lowp imageBuffer; #endif #ifdef GL_EXT_texture_cube_map_array precision lowp imageCubeArray; precision lowp samplerCubeArray; precision lowp samplerCubeArrayShadow; #endif #ifdef GL_OES_texture_storage_multisample_2d_array precision lowp sampler2DMS; precision lowp sampler2DMSArray; #endif in vec3 Position; uniform mat4 ModelViewMat; uniform mat4 ProjMat; void main() { gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.00000); } version string: 150New VGPU Shader source: #version 320 es #define texture2D texture #define attribute in #define varying out precision highp float; precision highp int; uniform vec4 ColorModulator; out vec4 fragColor; void main() { fragColor = ColorModulator; } New VGPU Shader conversion: #version 320 es #ifdef GL_OES_texture_storage_multisample_2d_array #extension GL_OES_texture_storage_multisample_2d_array : enable #endif #ifdef GL_EXT_texture_buffer #extension GL_EXT_texture_buffer : enable #endif #ifdef GL_EXT_texture_cube_map_array #extension GL_EXT_texture_cube_map_array : enable #endif #ifdef GL_EXT_shader_non_constant_global_initializers #extension GL_EXT_shader_non_constant_global_initializers : enable #endif precision highp float; precision lowp image2D; precision lowp image2DArray; precision lowp image3D; precision lowp imageCube; precision lowp sampler2D; precision lowp sampler3D; precision lowp sampler2DShadow; precision lowp samplerCubeShadow; precision lowp sampler2DArray; precision lowp sampler2DArrayShadow; precision lowp samplerCube; #ifdef GL_EXT_texture_buffer precision lowp samplerBuffer; precision lowp imageBuffer; #endif #ifdef GL_EXT_texture_cube_map_array precision lowp imageCubeArray; precision lowp samplerCubeArray; precision lowp samplerCubeArrayShadow; #endif #ifdef GL_OES_texture_storage_multisample_2d_array precision lowp sampler2DMS; precision lowp sampler2DMSArray; #endif uniform vec4 ColorModulator; out vec4 fragColor; void main() { fragColor = ColorModulator; } version string: 150New VGPU Shader source: #version 320 es #define texture2D texture #define attribute in #define varying out precision highp float; precision highp int; in vec3 Position; in vec4 Color; in vec2 UV0; uniform mat4 ModelViewMat; uniform mat4 ProjMat; out vec4 vertexColor; out vec2 texCoord0; void main() { gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.00000); vertexColor = Color; texCoord0 = UV0; } New VGPU Shader conversion: #version 320 es #ifdef GL_OES_texture_storage_multisample_2d_array #extension GL_OES_texture_storage_multisample_2d_array : enable #endif #ifdef GL_EXT_texture_buffer #extension GL_EXT_texture_buffer : enable #endif #ifdef GL_EXT_texture_cube_map_array #extension GL_EXT_texture_cube_map_array : enable #endif #ifdef GL_EXT_shader_non_constant_global_initializers #extension GL_EXT_shader_non_constant_global_initializers : enable #endif precision highp float; precision lowp image2D; precision lowp image2DArray; precision lowp image3D; precision lowp imageCube; precision lowp sampler2D; precision lowp sampler3D; precision lowp sampler2DShadow; precision lowp samplerCubeShadow; precision lowp sampler2DArray; precision lowp sampler2DArrayShadow; precision lowp samplerCube; #ifdef GL_EXT_texture_buffer precision lowp samplerBuffer; precision lowp imageBuffer; #endif #ifdef GL_EXT_texture_cube_map_array precision lowp imageCubeArray; precision lowp samplerCubeArray; precision lowp samplerCubeArrayShadow; #endif #ifdef GL_OES_texture_storage_multisample_2d_array precision lowp sampler2DMS; precision lowp sampler2DMSArray; #endif in vec3 Position; in vec4 Color; in vec2 UV0; uniform mat4 ModelViewMat; uniform mat4 ProjMat; out vec4 vertexColor; out vec2 texCoord0; void main() { gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.00000); vertexColor = Color; texCoord0 = UV0; } version string: 150New VGPU Shader source: #version 320 es #define texture2D texture #define attribute in #define varying out precision highp float; precision highp int; uniform sampler2D Sampler0; uniform vec4 ColorModulator; in vec4 vertexColor; in vec2 texCoord0; out vec4 fragColor; void main() { vec4 color = texture(Sampler0, texCoord0); if (color.a == 0.00000) { discard; } fragColor = vec4(ColorModulator.rgb * vertexColor.rgb, ColorModulator.a); } New VGPU Shader conversion: #version 320 es #ifdef GL_OES_texture_storage_multisample_2d_array #extension GL_OES_texture_storage_multisample_2d_array : enable #endif #ifdef GL_EXT_texture_buffer #extension GL_EXT_texture_buffer : enable #endif #ifdef GL_EXT_texture_cube_map_array #extension GL_EXT_texture_cube_map_array : enable #endif #ifdef GL_EXT_shader_non_constant_global_initializers #extension GL_EXT_shader_non_constant_global_initializers : enable #endif precision highp float; precision lowp image2D; precision lowp image2DArray; precision lowp image3D; precision lowp imageCube; precision lowp sampler2D; precision lowp sampler3D; precision lowp sampler2DShadow; precision lowp samplerCubeShadow; precision lowp sampler2DArray; precision lowp sampler2DArrayShadow; precision lowp samplerCube; #ifdef GL_EXT_texture_buffer precision lowp samplerBuffer; precision lowp imageBuffer; #endif #ifdef GL_EXT_texture_cube_map_array precision lowp imageCubeArray; precision lowp samplerCubeArray; precision lowp samplerCubeArrayShadow; #endif #ifdef GL_OES_texture_storage_multisample_2d_array precision lowp sampler2DMS; precision lowp sampler2DMSArray; #endif uniform sampler2D Sampler0; uniform vec4 ColorModulator; in vec4 vertexColor; in vec2 texCoord0; out vec4 fragColor; void main() { vec4 color = texture(Sampler0, texCoord0); if (color.a == 0.00000) { discard; } fragColor = vec4(ColorModulator.rgb * vertexColor.rgb, ColorModulator.a); } version string: 150New VGPU Shader source: #version 320 es #define texture2D texture #define attribute in #define varying out precision highp float; precision highp int; #line 0 1 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, int shape) { if (shape == 0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 3 0 in vec3 Position; in vec2 UV0; uniform mat4 ModelViewMat; uniform mat4 ProjMat; uniform mat4 TextureMat; uniform int FogShape; out float vertexDistance; out vec2 texCoord0; void main() { gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.00000); vertexDistance = fog_distance(ModelViewMat, Position, FogShape); texCoord0 = (TextureMat * vec4(UV0, 0.00000, 1.00000)).xy; } New VGPU Shader conversion: #version 320 es #ifdef GL_OES_texture_storage_multisample_2d_array #extension GL_OES_texture_storage_multisample_2d_array : enable #endif #ifdef GL_EXT_texture_buffer #extension GL_EXT_texture_buffer : enable #endif #ifdef GL_EXT_texture_cube_map_array #extension GL_EXT_texture_cube_map_array : enable #endif #ifdef GL_EXT_shader_non_constant_global_initializers #extension GL_EXT_shader_non_constant_global_initializers : enable #endif precision highp float; precision lowp image2D; precision lowp image2DArray; precision lowp image3D; precision lowp imageCube; precision lowp sampler2D; precision lowp sampler3D; precision lowp sampler2DShadow; precision lowp samplerCubeShadow; precision lowp sampler2DArray; precision lowp sampler2DArrayShadow; precision lowp samplerCube; #ifdef GL_EXT_texture_buffer precision lowp samplerBuffer; precision lowp imageBuffer; #endif #ifdef GL_EXT_texture_cube_map_array precision lowp imageCubeArray; precision lowp samplerCubeArray; precision lowp samplerCubeArrayShadow; #endif #ifdef GL_OES_texture_storage_multisample_2d_array precision lowp sampler2DMS; precision lowp sampler2DMSArray; #endif #line 0 1 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, float shape) { if (shape == 0.0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 3 0 in vec3 Position; in vec2 UV0; uniform mat4 ModelViewMat; uniform mat4 ProjMat; uniform mat4 TextureMat; uniform float FogShape; out float vertexDistance; out vec2 texCoord0; void main() { gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.00000); vertexDistance = fog_distance(ModelViewMat, Position, FogShape); texCoord0 = (TextureMat * vec4(UV0, 0.00000, 1.00000)).xy; } version string: 150New VGPU Shader source: #version 320 es #define texture2D texture #define attribute in #define varying out precision highp float; precision highp int; #line 0 1 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, int shape) { if (shape == 0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 3 0 uniform sampler2D Sampler0; uniform vec4 ColorModulator; uniform float FogStart; uniform float FogEnd; uniform float GlintAlpha; in float vertexDistance; in vec2 texCoord0; out vec4 fragColor; void main() { vec4 color = texture(Sampler0, texCoord0) * ColorModulator; if (color.a < 0.100000) { discard; } float fade = linear_fog_fade(vertexDistance, FogStart, FogEnd) * GlintAlpha; fragColor = vec4(color.rgb * fade, color.a); } New VGPU Shader conversion: #version 320 es #ifdef GL_OES_texture_storage_multisample_2d_array #extension GL_OES_texture_storage_multisample_2d_array : enable #endif #ifdef GL_EXT_texture_buffer #extension GL_EXT_texture_buffer : enable #endif #ifdef GL_EXT_texture_cube_map_array #extension GL_EXT_texture_cube_map_array : enable #endif #ifdef GL_EXT_shader_non_constant_global_initializers #extension GL_EXT_shader_non_constant_global_initializers : enable #endif precision highp float; precision lowp image2D; precision lowp image2DArray; precision lowp image3D; precision lowp imageCube; precision lowp sampler2D; precision lowp sampler3D; precision lowp sampler2DShadow; precision lowp samplerCubeShadow; precision lowp sampler2DArray; precision lowp sampler2DArrayShadow; precision lowp samplerCube; #ifdef GL_EXT_texture_buffer precision lowp samplerBuffer; precision lowp imageBuffer; #endif #ifdef GL_EXT_texture_cube_map_array precision lowp imageCubeArray; precision lowp samplerCubeArray; precision lowp samplerCubeArrayShadow; #endif #ifdef GL_OES_texture_storage_multisample_2d_array precision lowp sampler2DMS; precision lowp sampler2DMSArray; #endif #line 0 1 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, float shape) { if (shape == 0.0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 3 0 uniform sampler2D Sampler0; uniform vec4 ColorModulator; uniform float FogStart; uniform float FogEnd; uniform float GlintAlpha; in float vertexDistance; in vec2 texCoord0; out vec4 fragColor; void main() { vec4 color = texture(Sampler0, texCoord0) * ColorModulator; if (color.a < 0.100000) { discard; } float fade = linear_fog_fade(vertexDistance, FogStart, FogEnd) * GlintAlpha; fragColor = vec4(color.rgb * fade, color.a); } version string: 150New VGPU Shader source: #version 320 es #define texture2D texture #define attribute in #define varying out precision highp float; precision highp int; #line 0 1 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, int shape) { if (shape == 0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 3 0 in vec3 Position; in vec2 UV0; uniform mat4 ModelViewMat; uniform mat4 ProjMat; uniform mat4 TextureMat; uniform int FogShape; out float vertexDistance; out vec2 texCoord0; void main() { gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.00000); vertexDistance = fog_distance(ModelViewMat, Position, FogShape); texCoord0 = (TextureMat * vec4(UV0, 0.00000, 1.00000)).xy; } New VGPU Shader conversion: #version 320 es #ifdef GL_OES_texture_storage_multisample_2d_array #extension GL_OES_texture_storage_multisample_2d_array : enable #endif #ifdef GL_EXT_texture_buffer #extension GL_EXT_texture_buffer : enable #endif #ifdef GL_EXT_texture_cube_map_array #extension GL_EXT_texture_cube_map_array : enable #endif #ifdef GL_EXT_shader_non_constant_global_initializers #extension GL_EXT_shader_non_constant_global_initializers : enable #endif precision highp float; precision lowp image2D; precision lowp image2DArray; precision lowp image3D; precision lowp imageCube; precision lowp sampler2D; precision lowp sampler3D; precision lowp sampler2DShadow; precision lowp samplerCubeShadow; precision lowp sampler2DArray; precision lowp sampler2DArrayShadow; precision lowp samplerCube; #ifdef GL_EXT_texture_buffer precision lowp samplerBuffer; precision lowp imageBuffer; #endif #ifdef GL_EXT_texture_cube_map_array precision lowp imageCubeArray; precision lowp samplerCubeArray; precision lowp samplerCubeArrayShadow; #endif #ifdef GL_OES_texture_storage_multisample_2d_array precision lowp sampler2DMS; precision lowp sampler2DMSArray; #endif #line 0 1 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, float shape) { if (shape == 0.0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 3 0 in vec3 Position; in vec2 UV0; uniform mat4 ModelViewMat; uniform mat4 ProjMat; uniform mat4 TextureMat; uniform float FogShape; out float vertexDistance; out vec2 texCoord0; void main() { gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.00000); vertexDistance = fog_distance(ModelViewMat, Position, FogShape); texCoord0 = (TextureMat * vec4(UV0, 0.00000, 1.00000)).xy; } version string: 150New VGPU Shader source: #version 320 es #define texture2D texture #define attribute in #define varying out precision highp float; precision highp int; #line 0 1 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, int shape) { if (shape == 0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 3 0 uniform sampler2D Sampler0; uniform vec4 ColorModulator; uniform float FogStart; uniform float FogEnd; uniform float GlintAlpha; in float vertexDistance; in vec2 texCoord0; out vec4 fragColor; void main() { vec4 color = texture(Sampler0, texCoord0) * ColorModulator; if (color.a < 0.100000) { discard; } float fade = linear_fog_fade(vertexDistance, FogStart, FogEnd) * GlintAlpha; fragColor = vec4(color.rgb * fade, color.a); } New VGPU Shader conversion: #version 320 es #ifdef GL_OES_texture_storage_multisample_2d_array #extension GL_OES_texture_storage_multisample_2d_array : enable #endif #ifdef GL_EXT_texture_buffer #extension GL_EXT_texture_buffer : enable #endif #ifdef GL_EXT_texture_cube_map_array #extension GL_EXT_texture_cube_map_array : enable #endif #ifdef GL_EXT_shader_non_constant_global_initializers #extension GL_EXT_shader_non_constant_global_initializers : enable #endif precision highp float; precision lowp image2D; precision lowp image2DArray; precision lowp image3D; precision lowp imageCube; precision lowp sampler2D; precision lowp sampler3D; precision lowp sampler2DShadow; precision lowp samplerCubeShadow; precision lowp sampler2DArray; precision lowp sampler2DArrayShadow; precision lowp samplerCube; #ifdef GL_EXT_texture_buffer precision lowp samplerBuffer; precision lowp imageBuffer; #endif #ifdef GL_EXT_texture_cube_map_array precision lowp imageCubeArray; precision lowp samplerCubeArray; precision lowp samplerCubeArrayShadow; #endif #ifdef GL_OES_texture_storage_multisample_2d_array precision lowp sampler2DMS; precision lowp sampler2DMSArray; #endif #line 0 1 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, float shape) { if (shape == 0.0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 3 0 uniform sampler2D Sampler0; uniform vec4 ColorModulator; uniform float FogStart; uniform float FogEnd; uniform float GlintAlpha; in float vertexDistance; in vec2 texCoord0; out vec4 fragColor; void main() { vec4 color = texture(Sampler0, texCoord0) * ColorModulator; if (color.a < 0.100000) { discard; } float fade = linear_fog_fade(vertexDistance, FogStart, FogEnd) * GlintAlpha; fragColor = vec4(color.rgb * fade, color.a); } version string: 150New VGPU Shader source: #version 320 es #define texture2D texture #define attribute in #define varying out precision highp float; precision highp int; #line 0 1 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, int shape) { if (shape == 0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 3 0 in vec3 Position; in vec2 UV0; uniform mat4 ModelViewMat; uniform mat4 ProjMat; uniform mat3 IViewRotMat; uniform mat4 TextureMat; uniform int FogShape; out float vertexDistance; out vec2 texCoord0; void main() { gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.00000); vertexDistance = fog_distance(ModelViewMat, IViewRotMat * Position, FogShape); texCoord0 = (TextureMat * vec4(UV0, 0.00000, 1.00000)).xy; } New VGPU Shader conversion: #version 320 es #ifdef GL_OES_texture_storage_multisample_2d_array #extension GL_OES_texture_storage_multisample_2d_array : enable #endif #ifdef GL_EXT_texture_buffer #extension GL_EXT_texture_buffer : enable #endif #ifdef GL_EXT_texture_cube_map_array #extension GL_EXT_texture_cube_map_array : enable #endif #ifdef GL_EXT_shader_non_constant_global_initializers #extension GL_EXT_shader_non_constant_global_initializers : enable #endif precision highp float; precision lowp image2D; precision lowp image2DArray; precision lowp image3D; precision lowp imageCube; precision lowp sampler2D; precision lowp sampler3D; precision lowp sampler2DShadow; precision lowp samplerCubeShadow; precision lowp sampler2DArray; precision lowp sampler2DArrayShadow; precision lowp samplerCube; #ifdef GL_EXT_texture_buffer precision lowp samplerBuffer; precision lowp imageBuffer; #endif #ifdef GL_EXT_texture_cube_map_array precision lowp imageCubeArray; precision lowp samplerCubeArray; precision lowp samplerCubeArrayShadow; #endif #ifdef GL_OES_texture_storage_multisample_2d_array precision lowp sampler2DMS; precision lowp sampler2DMSArray; #endif #line 0 1 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, float shape) { if (shape == 0.0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 3 0 in vec3 Position; in vec2 UV0; uniform mat4 ModelViewMat; uniform mat4 ProjMat; uniform mat3 IViewRotMat; uniform mat4 TextureMat; uniform float FogShape; out float vertexDistance; out vec2 texCoord0; void main() { gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.00000); vertexDistance = fog_distance(ModelViewMat, IViewRotMat * Position, FogShape); texCoord0 = (TextureMat * vec4(UV0, 0.00000, 1.00000)).xy; } version string: 150New VGPU Shader source: #version 320 es #define texture2D texture #define attribute in #define varying out precision highp float; precision highp int; #line 0 1 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, int shape) { if (shape == 0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 3 0 uniform sampler2D Sampler0; uniform vec4 ColorModulator; uniform float FogStart; uniform float FogEnd; uniform float GlintAlpha; in float vertexDistance; in vec2 texCoord0; out vec4 fragColor; void main() { vec4 color = texture(Sampler0, texCoord0) * ColorModulator; if (color.a < 0.100000) { discard; } float fade = linear_fog_fade(vertexDistance, FogStart, FogEnd) * GlintAlpha; fragColor = vec4(color.rgb * fade, color.a); } New VGPU Shader conversion: #version 320 es #ifdef GL_OES_texture_storage_multisample_2d_array #extension GL_OES_texture_storage_multisample_2d_array : enable #endif #ifdef GL_EXT_texture_buffer #extension GL_EXT_texture_buffer : enable #endif #ifdef GL_EXT_texture_cube_map_array #extension GL_EXT_texture_cube_map_array : enable #endif #ifdef GL_EXT_shader_non_constant_global_initializers #extension GL_EXT_shader_non_constant_global_initializers : enable #endif precision highp float; precision lowp image2D; precision lowp image2DArray; precision lowp image3D; precision lowp imageCube; precision lowp sampler2D; precision lowp sampler3D; precision lowp sampler2DShadow; precision lowp samplerCubeShadow; precision lowp sampler2DArray; precision lowp sampler2DArrayShadow; precision lowp samplerCube; #ifdef GL_EXT_texture_buffer precision lowp samplerBuffer; precision lowp imageBuffer; #endif #ifdef GL_EXT_texture_cube_map_array precision lowp imageCubeArray; precision lowp samplerCubeArray; precision lowp samplerCubeArrayShadow; #endif #ifdef GL_OES_texture_storage_multisample_2d_array precision lowp sampler2DMS; precision lowp sampler2DMSArray; #endif #line 0 1 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, float shape) { if (shape == 0.0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 3 0 uniform sampler2D Sampler0; uniform vec4 ColorModulator; uniform float FogStart; uniform float FogEnd; uniform float GlintAlpha; in float vertexDistance; in vec2 texCoord0; out vec4 fragColor; void main() { vec4 color = texture(Sampler0, texCoord0) * ColorModulator; if (color.a < 0.100000) { discard; } float fade = linear_fog_fade(vertexDistance, FogStart, FogEnd) * GlintAlpha; fragColor = vec4(color.rgb * fade, color.a); } version string: 150New VGPU Shader source: #version 320 es #define texture2D texture #define attribute in #define varying out precision highp float; precision highp int; #line 0 1 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, int shape) { if (shape == 0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 3 0 in vec3 Position; in vec2 UV0; uniform mat4 ModelViewMat; uniform mat4 ProjMat; uniform mat3 IViewRotMat; uniform mat4 TextureMat; uniform int FogShape; out float vertexDistance; out vec2 texCoord0; void main() { gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.00000); vertexDistance = fog_distance(ModelViewMat, IViewRotMat * Position, FogShape); texCoord0 = (TextureMat * vec4(UV0, 0.00000, 1.00000)).xy; } New VGPU Shader conversion: #version 320 es #ifdef GL_OES_texture_storage_multisample_2d_array #extension GL_OES_texture_storage_multisample_2d_array : enable #endif #ifdef GL_EXT_texture_buffer #extension GL_EXT_texture_buffer : enable #endif #ifdef GL_EXT_texture_cube_map_array #extension GL_EXT_texture_cube_map_array : enable #endif #ifdef GL_EXT_shader_non_constant_global_initializers #extension GL_EXT_shader_non_constant_global_initializers : enable #endif precision highp float; precision lowp image2D; precision lowp image2DArray; precision lowp image3D; precision lowp imageCube; precision lowp sampler2D; precision lowp sampler3D; precision lowp sampler2DShadow; precision lowp samplerCubeShadow; precision lowp sampler2DArray; precision lowp sampler2DArrayShadow; precision lowp samplerCube; #ifdef GL_EXT_texture_buffer precision lowp samplerBuffer; precision lowp imageBuffer; #endif #ifdef GL_EXT_texture_cube_map_array precision lowp imageCubeArray; precision lowp samplerCubeArray; precision lowp samplerCubeArrayShadow; #endif #ifdef GL_OES_texture_storage_multisample_2d_array precision lowp sampler2DMS; precision lowp sampler2DMSArray; #endif #line 0 1 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, float shape) { if (shape == 0.0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 3 0 in vec3 Position; in vec2 UV0; uniform mat4 ModelViewMat; uniform mat4 ProjMat; uniform mat3 IViewRotMat; uniform mat4 TextureMat; uniform float FogShape; out float vertexDistance; out vec2 texCoord0; void main() { gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.00000); vertexDistance = fog_distance(ModelViewMat, IViewRotMat * Position, FogShape); texCoord0 = (TextureMat * vec4(UV0, 0.00000, 1.00000)).xy; } version string: 150New VGPU Shader source: #version 320 es #define texture2D texture #define attribute in #define varying out precision highp float; precision highp int; #line 0 1 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, int shape) { if (shape == 0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 3 0 uniform sampler2D Sampler0; uniform vec4 ColorModulator; uniform float FogStart; uniform float FogEnd; uniform float GlintAlpha; in float vertexDistance; in vec2 texCoord0; out vec4 fragColor; void main() { vec4 color = texture(Sampler0, texCoord0) * ColorModulator; if (color.a < 0.100000) { discard; } float fade = linear_fog_fade(vertexDistance, FogStart, FogEnd) * GlintAlpha; fragColor = vec4(color.rgb * fade, color.a); } New VGPU Shader conversion: #version 320 es #ifdef GL_OES_texture_storage_multisample_2d_array #extension GL_OES_texture_storage_multisample_2d_array : enable #endif #ifdef GL_EXT_texture_buffer #extension GL_EXT_texture_buffer : enable #endif #ifdef GL_EXT_texture_cube_map_array #extension GL_EXT_texture_cube_map_array : enable #endif #ifdef GL_EXT_shader_non_constant_global_initializers #extension GL_EXT_shader_non_constant_global_initializers : enable #endif precision highp float; precision lowp image2D; precision lowp image2DArray; precision lowp image3D; precision lowp imageCube; precision lowp sampler2D; precision lowp sampler3D; precision lowp sampler2DShadow; precision lowp samplerCubeShadow; precision lowp sampler2DArray; precision lowp sampler2DArrayShadow; precision lowp samplerCube; #ifdef GL_EXT_texture_buffer precision lowp samplerBuffer; precision lowp imageBuffer; #endif #ifdef GL_EXT_texture_cube_map_array precision lowp imageCubeArray; precision lowp samplerCubeArray; precision lowp samplerCubeArrayShadow; #endif #ifdef GL_OES_texture_storage_multisample_2d_array precision lowp sampler2DMS; precision lowp sampler2DMSArray; #endif #line 0 1 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, float shape) { if (shape == 0.0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 3 0 uniform sampler2D Sampler0; uniform vec4 ColorModulator; uniform float FogStart; uniform float FogEnd; uniform float GlintAlpha; in float vertexDistance; in vec2 texCoord0; out vec4 fragColor; void main() { vec4 color = texture(Sampler0, texCoord0) * ColorModulator; if (color.a < 0.100000) { discard; } float fade = linear_fog_fade(vertexDistance, FogStart, FogEnd) * GlintAlpha; fragColor = vec4(color.rgb * fade, color.a); } version string: 150New VGPU Shader source: #version 320 es #define texture2D texture #define attribute in #define varying out precision highp float; precision highp int; #line 0 1 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, int shape) { if (shape == 0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 3 0 in vec3 Position; in vec2 UV0; uniform mat4 ModelViewMat; uniform mat4 ProjMat; uniform mat3 IViewRotMat; uniform mat4 TextureMat; uniform int FogShape; out float vertexDistance; out vec2 texCoord0; void main() { gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.00000); vertexDistance = fog_distance(ModelViewMat, IViewRotMat * Position, FogShape); texCoord0 = (TextureMat * vec4(UV0, 0.00000, 1.00000)).xy; } New VGPU Shader conversion: #version 320 es #ifdef GL_OES_texture_storage_multisample_2d_array #extension GL_OES_texture_storage_multisample_2d_array : enable #endif #ifdef GL_EXT_texture_buffer #extension GL_EXT_texture_buffer : enable #endif #ifdef GL_EXT_texture_cube_map_array #extension GL_EXT_texture_cube_map_array : enable #endif #ifdef GL_EXT_shader_non_constant_global_initializers #extension GL_EXT_shader_non_constant_global_initializers : enable #endif precision highp float; precision lowp image2D; precision lowp image2DArray; precision lowp image3D; precision lowp imageCube; precision lowp sampler2D; precision lowp sampler3D; precision lowp sampler2DShadow; precision lowp samplerCubeShadow; precision lowp sampler2DArray; precision lowp sampler2DArrayShadow; precision lowp samplerCube; #ifdef GL_EXT_texture_buffer precision lowp samplerBuffer; precision lowp imageBuffer; #endif #ifdef GL_EXT_texture_cube_map_array precision lowp imageCubeArray; precision lowp samplerCubeArray; precision lowp samplerCubeArrayShadow; #endif #ifdef GL_OES_texture_storage_multisample_2d_array precision lowp sampler2DMS; precision lowp sampler2DMSArray; #endif #line 0 1 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, float shape) { if (shape == 0.0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 3 0 in vec3 Position; in vec2 UV0; uniform mat4 ModelViewMat; uniform mat4 ProjMat; uniform mat3 IViewRotMat; uniform mat4 TextureMat; uniform float FogShape; out float vertexDistance; out vec2 texCoord0; void main() { gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.00000); vertexDistance = fog_distance(ModelViewMat, IViewRotMat * Position, FogShape); texCoord0 = (TextureMat * vec4(UV0, 0.00000, 1.00000)).xy; } version string: 150New VGPU Shader source: #version 320 es #define texture2D texture #define attribute in #define varying out precision highp float; precision highp int; #line 0 1 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, int shape) { if (shape == 0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 3 0 uniform sampler2D Sampler0; uniform vec4 ColorModulator; uniform float FogStart; uniform float FogEnd; uniform float GlintAlpha; in float vertexDistance; in vec2 texCoord0; out vec4 fragColor; void main() { vec4 color = texture(Sampler0, texCoord0) * ColorModulator; if (color.a < 0.100000) { discard; } float fade = linear_fog_fade(vertexDistance, FogStart, FogEnd) * GlintAlpha; fragColor = vec4(color.rgb * fade, color.a); } New VGPU Shader conversion: #version 320 es #ifdef GL_OES_texture_storage_multisample_2d_array #extension GL_OES_texture_storage_multisample_2d_array : enable #endif #ifdef GL_EXT_texture_buffer #extension GL_EXT_texture_buffer : enable #endif #ifdef GL_EXT_texture_cube_map_array #extension GL_EXT_texture_cube_map_array : enable #endif #ifdef GL_EXT_shader_non_constant_global_initializers #extension GL_EXT_shader_non_constant_global_initializers : enable #endif precision highp float; precision lowp image2D; precision lowp image2DArray; precision lowp image3D; precision lowp imageCube; precision lowp sampler2D; precision lowp sampler3D; precision lowp sampler2DShadow; precision lowp samplerCubeShadow; precision lowp sampler2DArray; precision lowp sampler2DArrayShadow; precision lowp samplerCube; #ifdef GL_EXT_texture_buffer precision lowp samplerBuffer; precision lowp imageBuffer; #endif #ifdef GL_EXT_texture_cube_map_array precision lowp imageCubeArray; precision lowp samplerCubeArray; precision lowp samplerCubeArrayShadow; #endif #ifdef GL_OES_texture_storage_multisample_2d_array precision lowp sampler2DMS; precision lowp sampler2DMSArray; #endif #line 0 1 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, float shape) { if (shape == 0.0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 3 0 uniform sampler2D Sampler0; uniform vec4 ColorModulator; uniform float FogStart; uniform float FogEnd; uniform float GlintAlpha; in float vertexDistance; in vec2 texCoord0; out vec4 fragColor; void main() { vec4 color = texture(Sampler0, texCoord0) * ColorModulator; if (color.a < 0.100000) { discard; } float fade = linear_fog_fade(vertexDistance, FogStart, FogEnd) * GlintAlpha; fragColor = vec4(color.rgb * fade, color.a); } version string: 150New VGPU Shader source: #version 320 es #define texture2D texture #define attribute in #define varying out precision highp float; precision highp int; #line 0 1 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, int shape) { if (shape == 0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 3 0 in vec3 Position; in vec2 UV0; uniform mat4 ModelViewMat; uniform mat4 ProjMat; uniform mat3 IViewRotMat; uniform mat4 TextureMat; uniform int FogShape; out float vertexDistance; out vec2 texCoord0; void main() { gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.00000); vertexDistance = fog_distance(ModelViewMat, IViewRotMat * Position, FogShape); texCoord0 = (TextureMat * vec4(UV0, 0.00000, 1.00000)).xy; } New VGPU Shader conversion: #version 320 es #ifdef GL_OES_texture_storage_multisample_2d_array #extension GL_OES_texture_storage_multisample_2d_array : enable #endif #ifdef GL_EXT_texture_buffer #extension GL_EXT_texture_buffer : enable #endif #ifdef GL_EXT_texture_cube_map_array #extension GL_EXT_texture_cube_map_array : enable #endif #ifdef GL_EXT_shader_non_constant_global_initializers #extension GL_EXT_shader_non_constant_global_initializers : enable #endif precision highp float; precision lowp image2D; precision lowp image2DArray; precision lowp image3D; precision lowp imageCube; precision lowp sampler2D; precision lowp sampler3D; precision lowp sampler2DShadow; precision lowp samplerCubeShadow; precision lowp sampler2DArray; precision lowp sampler2DArrayShadow; precision lowp samplerCube; #ifdef GL_EXT_texture_buffer precision lowp samplerBuffer; precision lowp imageBuffer; #endif #ifdef GL_EXT_texture_cube_map_array precision lowp imageCubeArray; precision lowp samplerCubeArray; precision lowp samplerCubeArrayShadow; #endif #ifdef GL_OES_texture_storage_multisample_2d_array precision lowp sampler2DMS; precision lowp sampler2DMSArray; #endif #line 0 1 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, float shape) { if (shape == 0.0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 3 0 in vec3 Position; in vec2 UV0; uniform mat4 ModelViewMat; uniform mat4 ProjMat; uniform mat3 IViewRotMat; uniform mat4 TextureMat; uniform float FogShape; out float vertexDistance; out vec2 texCoord0; void main() { gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.00000); vertexDistance = fog_distance(ModelViewMat, IViewRotMat * Position, FogShape); texCoord0 = (TextureMat * vec4(UV0, 0.00000, 1.00000)).xy; } version string: 150New VGPU Shader source: #version 320 es #define texture2D texture #define attribute in #define varying out precision highp float; precision highp int; #line 0 1 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, int shape) { if (shape == 0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 3 0 uniform sampler2D Sampler0; uniform vec4 ColorModulator; uniform float FogStart; uniform float FogEnd; uniform float GlintAlpha; in float vertexDistance; in vec2 texCoord0; out vec4 fragColor; void main() { vec4 color = texture(Sampler0, texCoord0) * ColorModulator; if (color.a < 0.100000) { discard; } float fade = linear_fog_fade(vertexDistance, FogStart, FogEnd) * GlintAlpha; fragColor = vec4(color.rgb * fade, color.a); } New VGPU Shader conversion: #version 320 es #ifdef GL_OES_texture_storage_multisample_2d_array #extension GL_OES_texture_storage_multisample_2d_array : enable #endif #ifdef GL_EXT_texture_buffer #extension GL_EXT_texture_buffer : enable #endif #ifdef GL_EXT_texture_cube_map_array #extension GL_EXT_texture_cube_map_array : enable #endif #ifdef GL_EXT_shader_non_constant_global_initializers #extension GL_EXT_shader_non_constant_global_initializers : enable #endif precision highp float; precision lowp image2D; precision lowp image2DArray; precision lowp image3D; precision lowp imageCube; precision lowp sampler2D; precision lowp sampler3D; precision lowp sampler2DShadow; precision lowp samplerCubeShadow; precision lowp sampler2DArray; precision lowp sampler2DArrayShadow; precision lowp samplerCube; #ifdef GL_EXT_texture_buffer precision lowp samplerBuffer; precision lowp imageBuffer; #endif #ifdef GL_EXT_texture_cube_map_array precision lowp imageCubeArray; precision lowp samplerCubeArray; precision lowp samplerCubeArrayShadow; #endif #ifdef GL_OES_texture_storage_multisample_2d_array precision lowp sampler2DMS; precision lowp sampler2DMSArray; #endif #line 0 1 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, float shape) { if (shape == 0.0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 3 0 uniform sampler2D Sampler0; uniform vec4 ColorModulator; uniform float FogStart; uniform float FogEnd; uniform float GlintAlpha; in float vertexDistance; in vec2 texCoord0; out vec4 fragColor; void main() { vec4 color = texture(Sampler0, texCoord0) * ColorModulator; if (color.a < 0.100000) { discard; } float fade = linear_fog_fade(vertexDistance, FogStart, FogEnd) * GlintAlpha; fragColor = vec4(color.rgb * fade, color.a); } version string: 150New VGPU Shader source: #version 320 es #define texture2D texture #define attribute in #define varying out precision highp float; precision highp int; #line 0 1 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, int shape) { if (shape == 0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 3 0 in vec3 Position; in vec2 UV0; uniform mat4 ModelViewMat; uniform mat4 ProjMat; uniform mat3 IViewRotMat; uniform mat4 TextureMat; uniform int FogShape; out float vertexDistance; out vec2 texCoord0; void main() { gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.00000); vertexDistance = fog_distance(ModelViewMat, IViewRotMat * Position, FogShape); texCoord0 = (TextureMat * vec4(UV0, 0.00000, 1.00000)).xy; } New VGPU Shader conversion: #version 320 es #ifdef GL_OES_texture_storage_multisample_2d_array #extension GL_OES_texture_storage_multisample_2d_array : enable #endif #ifdef GL_EXT_texture_buffer #extension GL_EXT_texture_buffer : enable #endif #ifdef GL_EXT_texture_cube_map_array #extension GL_EXT_texture_cube_map_array : enable #endif #ifdef GL_EXT_shader_non_constant_global_initializers #extension GL_EXT_shader_non_constant_global_initializers : enable #endif precision highp float; precision lowp image2D; precision lowp image2DArray; precision lowp image3D; precision lowp imageCube; precision lowp sampler2D; precision lowp sampler3D; precision lowp sampler2DShadow; precision lowp samplerCubeShadow; precision lowp sampler2DArray; precision lowp sampler2DArrayShadow; precision lowp samplerCube; #ifdef GL_EXT_texture_buffer precision lowp samplerBuffer; precision lowp imageBuffer; #endif #ifdef GL_EXT_texture_cube_map_array precision lowp imageCubeArray; precision lowp samplerCubeArray; precision lowp samplerCubeArrayShadow; #endif #ifdef GL_OES_texture_storage_multisample_2d_array precision lowp sampler2DMS; precision lowp sampler2DMSArray; #endif #line 0 1 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, float shape) { if (shape == 0.0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 3 0 in vec3 Position; in vec2 UV0; uniform mat4 ModelViewMat; uniform mat4 ProjMat; uniform mat3 IViewRotMat; uniform mat4 TextureMat; uniform float FogShape; out float vertexDistance; out vec2 texCoord0; void main() { gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.00000); vertexDistance = fog_distance(ModelViewMat, IViewRotMat * Position, FogShape); texCoord0 = (TextureMat * vec4(UV0, 0.00000, 1.00000)).xy; } version string: 150New VGPU Shader source: #version 320 es #define texture2D texture #define attribute in #define varying out precision highp float; precision highp int; #line 0 1 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, int shape) { if (shape == 0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 3 0 uniform sampler2D Sampler0; uniform vec4 ColorModulator; uniform float FogStart; uniform float FogEnd; uniform float GlintAlpha; in float vertexDistance; in vec2 texCoord0; out vec4 fragColor; void main() { vec4 color = texture(Sampler0, texCoord0) * ColorModulator; if (color.a < 0.100000) { discard; } float fade = linear_fog_fade(vertexDistance, FogStart, FogEnd) * GlintAlpha; fragColor = vec4(color.rgb * fade, color.a); } New VGPU Shader conversion: #version 320 es #ifdef GL_OES_texture_storage_multisample_2d_array #extension GL_OES_texture_storage_multisample_2d_array : enable #endif #ifdef GL_EXT_texture_buffer #extension GL_EXT_texture_buffer : enable #endif #ifdef GL_EXT_texture_cube_map_array #extension GL_EXT_texture_cube_map_array : enable #endif #ifdef GL_EXT_shader_non_constant_global_initializers #extension GL_EXT_shader_non_constant_global_initializers : enable #endif precision highp float; precision lowp image2D; precision lowp image2DArray; precision lowp image3D; precision lowp imageCube; precision lowp sampler2D; precision lowp sampler3D; precision lowp sampler2DShadow; precision lowp samplerCubeShadow; precision lowp sampler2DArray; precision lowp sampler2DArrayShadow; precision lowp samplerCube; #ifdef GL_EXT_texture_buffer precision lowp samplerBuffer; precision lowp imageBuffer; #endif #ifdef GL_EXT_texture_cube_map_array precision lowp imageCubeArray; precision lowp samplerCubeArray; precision lowp samplerCubeArrayShadow; #endif #ifdef GL_OES_texture_storage_multisample_2d_array precision lowp sampler2DMS; precision lowp sampler2DMSArray; #endif #line 0 1 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, float shape) { if (shape == 0.0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 3 0 uniform sampler2D Sampler0; uniform vec4 ColorModulator; uniform float FogStart; uniform float FogEnd; uniform float GlintAlpha; in float vertexDistance; in vec2 texCoord0; out vec4 fragColor; void main() { vec4 color = texture(Sampler0, texCoord0) * ColorModulator; if (color.a < 0.100000) { discard; } float fade = linear_fog_fade(vertexDistance, FogStart, FogEnd) * GlintAlpha; fragColor = vec4(color.rgb * fade, color.a); } version string: 150New VGPU Shader source: #version 320 es #define texture2D texture #define attribute in #define varying out precision highp float; precision highp int; #line 0 1 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, int shape) { if (shape == 0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 3 0 in vec3 Position; in vec4 Color; in vec2 UV0; in ivec2 UV2; uniform sampler2D Sampler2; uniform mat4 ModelViewMat; uniform mat4 ProjMat; uniform mat3 IViewRotMat; uniform int FogShape; out float vertexDistance; out vec4 vertexColor; out vec2 texCoord0; void main() { gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.00000); vertexDistance = fog_distance(ModelViewMat, IViewRotMat * Position, FogShape); vertexColor = Color * texelFetch(Sampler2, UV2 / 16, 0); texCoord0 = UV0; } New VGPU Shader conversion: #version 320 es #ifdef GL_OES_texture_storage_multisample_2d_array #extension GL_OES_texture_storage_multisample_2d_array : enable #endif #ifdef GL_EXT_texture_buffer #extension GL_EXT_texture_buffer : enable #endif #ifdef GL_EXT_texture_cube_map_array #extension GL_EXT_texture_cube_map_array : enable #endif #ifdef GL_EXT_shader_non_constant_global_initializers #extension GL_EXT_shader_non_constant_global_initializers : enable #endif precision highp float; precision lowp image2D; precision lowp image2DArray; precision lowp image3D; precision lowp imageCube; precision lowp sampler2D; precision lowp sampler3D; precision lowp sampler2DShadow; precision lowp samplerCubeShadow; precision lowp sampler2DArray; precision lowp sampler2DArrayShadow; precision lowp samplerCube; #ifdef GL_EXT_texture_buffer precision lowp samplerBuffer; precision lowp imageBuffer; #endif #ifdef GL_EXT_texture_cube_map_array precision lowp imageCubeArray; precision lowp samplerCubeArray; precision lowp samplerCubeArrayShadow; #endif #ifdef GL_OES_texture_storage_multisample_2d_array precision lowp sampler2DMS; precision lowp sampler2DMSArray; #endif vec4 vgpu_texelFetch(sampler2D sampler, vec2 P, float lod){return texelFetch(sampler, ivec2(P), int(lod));} vec4 vgpu_texelFetch(sampler3D sampler, vec3 P, float lod){return texelFetch(sampler, ivec3(P), int(lod));} vec4 vgpu_texelFetch(sampler2DArray sampler, vec3 P, float lod){return texelFetch(sampler, ivec3(P), int(lod));} #ifdef GL_EXT_texture_buffer vec4 vgpu_texelFetch(samplerBuffer sampler, float P){return texelFetch(sampler, int(P));} #endif #ifdef GL_OES_texture_storage_multisample_2d_array vec4 vgpu_texelFetch(sampler2DMS sampler, vec2 P, float _sample){return texelFetch(sampler, ivec2(P), int(_sample));} vec4 vgpu_texelFetch(sampler2DMSArray sampler, vec3 P, float _sample){return texelFetch(sampler, ivec3(P), int(_sample));} #endif #line 0 1 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, float shape) { if (shape == 0.0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 3 0 in vec3 Position; in vec4 Color; in vec2 UV0; in vec2 UV2; uniform sampler2D Sampler2; uniform mat4 ModelViewMat; uniform mat4 ProjMat; uniform mat3 IViewRotMat; uniform float FogShape; out float vertexDistance; out vec4 vertexColor; out vec2 texCoord0; void main() { gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.00000); vertexDistance = fog_distance(ModelViewMat, IViewRotMat * Position, FogShape); vertexColor = Color * vgpu_texelFetch(Sampler2, UV2 / 16.0, 0.0); texCoord0 = UV0; } version string: 150New VGPU Shader source: #version 320 es #define texture2D texture #define attribute in #define varying out precision highp float; precision highp int; #line 0 1 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, int shape) { if (shape == 0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 3 0 uniform sampler2D Sampler0; uniform vec4 ColorModulator; uniform float FogStart; uniform float FogEnd; uniform vec4 FogColor; in float vertexDistance; in vec4 vertexColor; in vec2 texCoord0; out vec4 fragColor; void main() { vec4 color = texture(Sampler0, texCoord0) * vertexColor * ColorModulator; if (color.a < 0.100000) { discard; } fragColor = linear_fog(color, vertexDistance, FogStart, FogEnd, FogColor); } New VGPU Shader conversion: #version 320 es #ifdef GL_OES_texture_storage_multisample_2d_array #extension GL_OES_texture_storage_multisample_2d_array : enable #endif #ifdef GL_EXT_texture_buffer #extension GL_EXT_texture_buffer : enable #endif #ifdef GL_EXT_texture_cube_map_array #extension GL_EXT_texture_cube_map_array : enable #endif #ifdef GL_EXT_shader_non_constant_global_initializers #extension GL_EXT_shader_non_constant_global_initializers : enable #endif precision highp float; precision lowp image2D; precision lowp image2DArray; precision lowp image3D; precision lowp imageCube; precision lowp sampler2D; precision lowp sampler3D; precision lowp sampler2DShadow; precision lowp samplerCubeShadow; precision lowp sampler2DArray; precision lowp sampler2DArrayShadow; precision lowp samplerCube; #ifdef GL_EXT_texture_buffer precision lowp samplerBuffer; precision lowp imageBuffer; #endif #ifdef GL_EXT_texture_cube_map_array precision lowp imageCubeArray; precision lowp samplerCubeArray; precision lowp samplerCubeArrayShadow; #endif #ifdef GL_OES_texture_storage_multisample_2d_array precision lowp sampler2DMS; precision lowp sampler2DMSArray; #endif #line 0 1 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, float shape) { if (shape == 0.0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 3 0 uniform sampler2D Sampler0; uniform vec4 ColorModulator; uniform float FogStart; uniform float FogEnd; uniform vec4 FogColor; in float vertexDistance; in vec4 vertexColor; in vec2 texCoord0; out vec4 fragColor; void main() { vec4 color = texture(Sampler0, texCoord0) * vertexColor * ColorModulator; if (color.a < 0.100000) { discard; } fragColor = linear_fog(color, vertexDistance, FogStart, FogEnd, FogColor); } version string: 150New VGPU Shader source: #version 320 es #define texture2D texture #define attribute in #define varying out precision highp float; precision highp int; #line 0 1 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, int shape) { if (shape == 0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 3 0 in vec3 Position; in vec4 Color; in ivec2 UV2; uniform sampler2D Sampler2; uniform mat4 ModelViewMat; uniform mat4 ProjMat; uniform mat3 IViewRotMat; uniform int FogShape; out float vertexDistance; out vec4 vertexColor; void main() { gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.00000); vertexDistance = fog_distance(ModelViewMat, IViewRotMat * Position, FogShape); vertexColor = Color * texelFetch(Sampler2, UV2 / 16, 0); } New VGPU Shader conversion: #version 320 es #ifdef GL_OES_texture_storage_multisample_2d_array #extension GL_OES_texture_storage_multisample_2d_array : enable #endif #ifdef GL_EXT_texture_buffer #extension GL_EXT_texture_buffer : enable #endif #ifdef GL_EXT_texture_cube_map_array #extension GL_EXT_texture_cube_map_array : enable #endif #ifdef GL_EXT_shader_non_constant_global_initializers #extension GL_EXT_shader_non_constant_global_initializers : enable #endif precision highp float; precision lowp image2D; precision lowp image2DArray; precision lowp image3D; precision lowp imageCube; precision lowp sampler2D; precision lowp sampler3D; precision lowp sampler2DShadow; precision lowp samplerCubeShadow; precision lowp sampler2DArray; precision lowp sampler2DArrayShadow; precision lowp samplerCube; #ifdef GL_EXT_texture_buffer precision lowp samplerBuffer; precision lowp imageBuffer; #endif #ifdef GL_EXT_texture_cube_map_array precision lowp imageCubeArray; precision lowp samplerCubeArray; precision lowp samplerCubeArrayShadow; #endif #ifdef GL_OES_texture_storage_multisample_2d_array precision lowp sampler2DMS; precision lowp sampler2DMSArray; #endif vec4 vgpu_texelFetch(sampler2D sampler, vec2 P, float lod){return texelFetch(sampler, ivec2(P), int(lod));} vec4 vgpu_texelFetch(sampler3D sampler, vec3 P, float lod){return texelFetch(sampler, ivec3(P), int(lod));} vec4 vgpu_texelFetch(sampler2DArray sampler, vec3 P, float lod){return texelFetch(sampler, ivec3(P), int(lod));} #ifdef GL_EXT_texture_buffer vec4 vgpu_texelFetch(samplerBuffer sampler, float P){return texelFetch(sampler, int(P));} #endif #ifdef GL_OES_texture_storage_multisample_2d_array vec4 vgpu_texelFetch(sampler2DMS sampler, vec2 P, float _sample){return texelFetch(sampler, ivec2(P), int(_sample));} vec4 vgpu_texelFetch(sampler2DMSArray sampler, vec3 P, float _sample){return texelFetch(sampler, ivec3(P), int(_sample));} #endif #line 0 1 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, float shape) { if (shape == 0.0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 3 0 in vec3 Position; in vec4 Color; in vec2 UV2; uniform sampler2D Sampler2; uniform mat4 ModelViewMat; uniform mat4 ProjMat; uniform mat3 IViewRotMat; uniform float FogShape; out float vertexDistance; out vec4 vertexColor; void main() { gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.00000); vertexDistance = fog_distance(ModelViewMat, IViewRotMat * Position, FogShape); vertexColor = Color * vgpu_texelFetch(Sampler2, UV2 / 16.0, 0.0); } version string: 150New VGPU Shader source: #version 320 es #define texture2D texture #define attribute in #define varying out precision highp float; precision highp int; #line 0 1 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, int shape) { if (shape == 0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 3 0 uniform sampler2D Sampler0; uniform vec4 ColorModulator; uniform float FogStart; uniform float FogEnd; uniform vec4 FogColor; in float vertexDistance; in vec4 vertexColor; in vec2 texCoord0; out vec4 fragColor; void main() { vec4 color = vertexColor * ColorModulator; if (color.a < 0.100000) { discard; } fragColor = linear_fog(color, vertexDistance, FogStart, FogEnd, FogColor); } New VGPU Shader conversion: #version 320 es #ifdef GL_OES_texture_storage_multisample_2d_array #extension GL_OES_texture_storage_multisample_2d_array : enable #endif #ifdef GL_EXT_texture_buffer #extension GL_EXT_texture_buffer : enable #endif #ifdef GL_EXT_texture_cube_map_array #extension GL_EXT_texture_cube_map_array : enable #endif #ifdef GL_EXT_shader_non_constant_global_initializers #extension GL_EXT_shader_non_constant_global_initializers : enable #endif precision highp float; precision lowp image2D; precision lowp image2DArray; precision lowp image3D; precision lowp imageCube; precision lowp sampler2D; precision lowp sampler3D; precision lowp sampler2DShadow; precision lowp samplerCubeShadow; precision lowp sampler2DArray; precision lowp sampler2DArrayShadow; precision lowp samplerCube; #ifdef GL_EXT_texture_buffer precision lowp samplerBuffer; precision lowp imageBuffer; #endif #ifdef GL_EXT_texture_cube_map_array precision lowp imageCubeArray; precision lowp samplerCubeArray; precision lowp samplerCubeArrayShadow; #endif #ifdef GL_OES_texture_storage_multisample_2d_array precision lowp sampler2DMS; precision lowp sampler2DMSArray; #endif #line 0 1 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, float shape) { if (shape == 0.0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 3 0 uniform sampler2D Sampler0; uniform vec4 ColorModulator; uniform float FogStart; uniform float FogEnd; uniform vec4 FogColor; in float vertexDistance; in vec4 vertexColor; in vec2 texCoord0; out vec4 fragColor; void main() { vec4 color = vertexColor * ColorModulator; if (color.a < 0.100000) { discard; } fragColor = linear_fog(color, vertexDistance, FogStart, FogEnd, FogColor); } version string: 150New VGPU Shader source: #version 320 es #define texture2D texture #define attribute in #define varying out precision highp float; precision highp int; #line 0 1 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, int shape) { if (shape == 0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 3 0 in vec3 Position; in vec4 Color; in vec2 UV0; in ivec2 UV2; uniform sampler2D Sampler2; uniform mat4 ModelViewMat; uniform mat4 ProjMat; uniform mat3 IViewRotMat; uniform int FogShape; out float vertexDistance; out vec4 vertexColor; out vec2 texCoord0; void main() { gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.00000); vertexDistance = fog_distance(ModelViewMat, IViewRotMat * Position, FogShape); vertexColor = Color * texelFetch(Sampler2, UV2 / 16, 0); texCoord0 = UV0; } New VGPU Shader conversion: #version 320 es #ifdef GL_OES_texture_storage_multisample_2d_array #extension GL_OES_texture_storage_multisample_2d_array : enable #endif #ifdef GL_EXT_texture_buffer #extension GL_EXT_texture_buffer : enable #endif #ifdef GL_EXT_texture_cube_map_array #extension GL_EXT_texture_cube_map_array : enable #endif #ifdef GL_EXT_shader_non_constant_global_initializers #extension GL_EXT_shader_non_constant_global_initializers : enable #endif precision highp float; precision lowp image2D; precision lowp image2DArray; precision lowp image3D; precision lowp imageCube; precision lowp sampler2D; precision lowp sampler3D; precision lowp sampler2DShadow; precision lowp samplerCubeShadow; precision lowp sampler2DArray; precision lowp sampler2DArrayShadow; precision lowp samplerCube; #ifdef GL_EXT_texture_buffer precision lowp samplerBuffer; precision lowp imageBuffer; #endif #ifdef GL_EXT_texture_cube_map_array precision lowp imageCubeArray; precision lowp samplerCubeArray; precision lowp samplerCubeArrayShadow; #endif #ifdef GL_OES_texture_storage_multisample_2d_array precision lowp sampler2DMS; precision lowp sampler2DMSArray; #endif vec4 vgpu_texelFetch(sampler2D sampler, vec2 P, float lod){return texelFetch(sampler, ivec2(P), int(lod));} vec4 vgpu_texelFetch(sampler3D sampler, vec3 P, float lod){return texelFetch(sampler, ivec3(P), int(lod));} vec4 vgpu_texelFetch(sampler2DArray sampler, vec3 P, float lod){return texelFetch(sampler, ivec3(P), int(lod));} #ifdef GL_EXT_texture_buffer vec4 vgpu_texelFetch(samplerBuffer sampler, float P){return texelFetch(sampler, int(P));} #endif #ifdef GL_OES_texture_storage_multisample_2d_array vec4 vgpu_texelFetch(sampler2DMS sampler, vec2 P, float _sample){return texelFetch(sampler, ivec2(P), int(_sample));} vec4 vgpu_texelFetch(sampler2DMSArray sampler, vec3 P, float _sample){return texelFetch(sampler, ivec3(P), int(_sample));} #endif #line 0 1 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, float shape) { if (shape == 0.0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 3 0 in vec3 Position; in vec4 Color; in vec2 UV0; in vec2 UV2; uniform sampler2D Sampler2; uniform mat4 ModelViewMat; uniform mat4 ProjMat; uniform mat3 IViewRotMat; uniform float FogShape; out float vertexDistance; out vec4 vertexColor; out vec2 texCoord0; void main() { gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.00000); vertexDistance = fog_distance(ModelViewMat, IViewRotMat * Position, FogShape); vertexColor = Color * vgpu_texelFetch(Sampler2, UV2 / 16.0, 0.0); texCoord0 = UV0; } version string: 150New VGPU Shader source: #version 320 es #define texture2D texture #define attribute in #define varying out precision highp float; precision highp int; #line 0 1 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, int shape) { if (shape == 0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 3 0 uniform sampler2D Sampler0; uniform vec4 ColorModulator; uniform float FogStart; uniform float FogEnd; uniform vec4 FogColor; in float vertexDistance; in vec4 vertexColor; in vec2 texCoord0; out vec4 fragColor; void main() { vec4 color = texture(Sampler0, texCoord0).rrrr * vertexColor * ColorModulator; if (color.a < 0.100000) { discard; } fragColor = linear_fog(color, vertexDistance, FogStart, FogEnd, FogColor); } New VGPU Shader conversion: #version 320 es #ifdef GL_OES_texture_storage_multisample_2d_array #extension GL_OES_texture_storage_multisample_2d_array : enable #endif #ifdef GL_EXT_texture_buffer #extension GL_EXT_texture_buffer : enable #endif #ifdef GL_EXT_texture_cube_map_array #extension GL_EXT_texture_cube_map_array : enable #endif #ifdef GL_EXT_shader_non_constant_global_initializers #extension GL_EXT_shader_non_constant_global_initializers : enable #endif precision highp float; precision lowp image2D; precision lowp image2DArray; precision lowp image3D; precision lowp imageCube; precision lowp sampler2D; precision lowp sampler3D; precision lowp sampler2DShadow; precision lowp samplerCubeShadow; precision lowp sampler2DArray; precision lowp sampler2DArrayShadow; precision lowp samplerCube; #ifdef GL_EXT_texture_buffer precision lowp samplerBuffer; precision lowp imageBuffer; #endif #ifdef GL_EXT_texture_cube_map_array precision lowp imageCubeArray; precision lowp samplerCubeArray; precision lowp samplerCubeArrayShadow; #endif #ifdef GL_OES_texture_storage_multisample_2d_array precision lowp sampler2DMS; precision lowp sampler2DMSArray; #endif #line 0 1 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, float shape) { if (shape == 0.0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 3 0 uniform sampler2D Sampler0; uniform vec4 ColorModulator; uniform float FogStart; uniform float FogEnd; uniform vec4 FogColor; in float vertexDistance; in vec4 vertexColor; in vec2 texCoord0; out vec4 fragColor; void main() { vec4 color = texture(Sampler0, texCoord0).rrrr * vertexColor * ColorModulator; if (color.a < 0.100000) { discard; } fragColor = linear_fog(color, vertexDistance, FogStart, FogEnd, FogColor); } version string: 150New VGPU Shader source: #version 320 es #define texture2D texture #define attribute in #define varying out precision highp float; precision highp int; in vec3 Position; in vec4 Color; in vec2 UV0; uniform mat4 ModelViewMat; uniform mat4 ProjMat; out vec4 vertexColor; out vec2 texCoord0; void main() { gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.00000); vertexColor = Color; texCoord0 = UV0; } New VGPU Shader conversion: #version 320 es #ifdef GL_OES_texture_storage_multisample_2d_array #extension GL_OES_texture_storage_multisample_2d_array : enable #endif #ifdef GL_EXT_texture_buffer #extension GL_EXT_texture_buffer : enable #endif #ifdef GL_EXT_texture_cube_map_array #extension GL_EXT_texture_cube_map_array : enable #endif #ifdef GL_EXT_shader_non_constant_global_initializers #extension GL_EXT_shader_non_constant_global_initializers : enable #endif precision highp float; precision lowp image2D; precision lowp image2DArray; precision lowp image3D; precision lowp imageCube; precision lowp sampler2D; precision lowp sampler3D; precision lowp sampler2DShadow; precision lowp samplerCubeShadow; precision lowp sampler2DArray; precision lowp sampler2DArrayShadow; precision lowp samplerCube; #ifdef GL_EXT_texture_buffer precision lowp samplerBuffer; precision lowp imageBuffer; #endif #ifdef GL_EXT_texture_cube_map_array precision lowp imageCubeArray; precision lowp samplerCubeArray; precision lowp samplerCubeArrayShadow; #endif #ifdef GL_OES_texture_storage_multisample_2d_array precision lowp sampler2DMS; precision lowp sampler2DMSArray; #endif in vec3 Position; in vec4 Color; in vec2 UV0; uniform mat4 ModelViewMat; uniform mat4 ProjMat; out vec4 vertexColor; out vec2 texCoord0; void main() { gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.00000); vertexColor = Color; texCoord0 = UV0; } version string: 150New VGPU Shader source: #version 320 es #define texture2D texture #define attribute in #define varying out precision highp float; precision highp int; uniform sampler2D Sampler0; uniform vec4 ColorModulator; in vec4 vertexColor; in vec2 texCoord0; out vec4 fragColor; void main() { vec4 color = texture(Sampler0, texCoord0) * vertexColor; if (color.a < 0.100000) { discard; } fragColor = color * ColorModulator; } New VGPU Shader conversion: #version 320 es #ifdef GL_OES_texture_storage_multisample_2d_array #extension GL_OES_texture_storage_multisample_2d_array : enable #endif #ifdef GL_EXT_texture_buffer #extension GL_EXT_texture_buffer : enable #endif #ifdef GL_EXT_texture_cube_map_array #extension GL_EXT_texture_cube_map_array : enable #endif #ifdef GL_EXT_shader_non_constant_global_initializers #extension GL_EXT_shader_non_constant_global_initializers : enable #endif precision highp float; precision lowp image2D; precision lowp image2DArray; precision lowp image3D; precision lowp imageCube; precision lowp sampler2D; precision lowp sampler3D; precision lowp sampler2DShadow; precision lowp samplerCubeShadow; precision lowp sampler2DArray; precision lowp sampler2DArrayShadow; precision lowp samplerCube; #ifdef GL_EXT_texture_buffer precision lowp samplerBuffer; precision lowp imageBuffer; #endif #ifdef GL_EXT_texture_cube_map_array precision lowp imageCubeArray; precision lowp samplerCubeArray; precision lowp samplerCubeArrayShadow; #endif #ifdef GL_OES_texture_storage_multisample_2d_array precision lowp sampler2DMS; precision lowp sampler2DMSArray; #endif uniform sampler2D Sampler0; uniform vec4 ColorModulator; in vec4 vertexColor; in vec2 texCoord0; out vec4 fragColor; void main() { vec4 color = texture(Sampler0, texCoord0) * vertexColor; if (color.a < 0.100000) { discard; } fragColor = color * ColorModulator; } version string: 150New VGPU Shader source: #version 320 es #define texture2D texture #define attribute in #define varying out precision highp float; precision highp int; in vec3 Position; in vec4 Color; uniform mat4 ModelViewMat; uniform mat4 ProjMat; out vec4 vertexColor; void main() { gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.00000); vertexColor = Color; } New VGPU Shader conversion: #version 320 es #ifdef GL_OES_texture_storage_multisample_2d_array #extension GL_OES_texture_storage_multisample_2d_array : enable #endif #ifdef GL_EXT_texture_buffer #extension GL_EXT_texture_buffer : enable #endif #ifdef GL_EXT_texture_cube_map_array #extension GL_EXT_texture_cube_map_array : enable #endif #ifdef GL_EXT_shader_non_constant_global_initializers #extension GL_EXT_shader_non_constant_global_initializers : enable #endif precision highp float; precision lowp image2D; precision lowp image2DArray; precision lowp image3D; precision lowp imageCube; precision lowp sampler2D; precision lowp sampler3D; precision lowp sampler2DShadow; precision lowp samplerCubeShadow; precision lowp sampler2DArray; precision lowp sampler2DArrayShadow; precision lowp samplerCube; #ifdef GL_EXT_texture_buffer precision lowp samplerBuffer; precision lowp imageBuffer; #endif #ifdef GL_EXT_texture_cube_map_array precision lowp imageCubeArray; precision lowp samplerCubeArray; precision lowp samplerCubeArrayShadow; #endif #ifdef GL_OES_texture_storage_multisample_2d_array precision lowp sampler2DMS; precision lowp sampler2DMSArray; #endif in vec3 Position; in vec4 Color; uniform mat4 ModelViewMat; uniform mat4 ProjMat; out vec4 vertexColor; void main() { gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.00000); vertexColor = Color; } version string: 150New VGPU Shader source: #version 320 es #define texture2D texture #define attribute in #define varying out precision highp float; precision highp int; uniform vec4 ColorModulator; in vec4 vertexColor; out vec4 fragColor; void main() { vec4 color = vertexColor; if (color.a < 0.100000) { discard; } fragColor = color * ColorModulator; } New VGPU Shader conversion: #version 320 es #ifdef GL_OES_texture_storage_multisample_2d_array #extension GL_OES_texture_storage_multisample_2d_array : enable #endif #ifdef GL_EXT_texture_buffer #extension GL_EXT_texture_buffer : enable #endif #ifdef GL_EXT_texture_cube_map_array #extension GL_EXT_texture_cube_map_array : enable #endif #ifdef GL_EXT_shader_non_constant_global_initializers #extension GL_EXT_shader_non_constant_global_initializers : enable #endif precision highp float; precision lowp image2D; precision lowp image2DArray; precision lowp image3D; precision lowp imageCube; precision lowp sampler2D; precision lowp sampler3D; precision lowp sampler2DShadow; precision lowp samplerCubeShadow; precision lowp sampler2DArray; precision lowp sampler2DArrayShadow; precision lowp samplerCube; #ifdef GL_EXT_texture_buffer precision lowp samplerBuffer; precision lowp imageBuffer; #endif #ifdef GL_EXT_texture_cube_map_array precision lowp imageCubeArray; precision lowp samplerCubeArray; precision lowp samplerCubeArrayShadow; #endif #ifdef GL_OES_texture_storage_multisample_2d_array precision lowp sampler2DMS; precision lowp sampler2DMSArray; #endif uniform vec4 ColorModulator; in vec4 vertexColor; out vec4 fragColor; void main() { vec4 color = vertexColor; if (color.a < 0.100000) { discard; } fragColor = color * ColorModulator; } version string: 150New VGPU Shader source: #version 320 es #define texture2D texture #define attribute in #define varying out precision highp float; precision highp int; in vec3 Position; in vec4 Color; in vec2 UV0; uniform mat4 ModelViewMat; uniform mat4 ProjMat; out vec4 vertexColor; out vec2 texCoord0; void main() { gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.00000); vertexColor = Color; texCoord0 = UV0; } New VGPU Shader conversion: #version 320 es #ifdef GL_OES_texture_storage_multisample_2d_array #extension GL_OES_texture_storage_multisample_2d_array : enable #endif #ifdef GL_EXT_texture_buffer #extension GL_EXT_texture_buffer : enable #endif #ifdef GL_EXT_texture_cube_map_array #extension GL_EXT_texture_cube_map_array : enable #endif #ifdef GL_EXT_shader_non_constant_global_initializers #extension GL_EXT_shader_non_constant_global_initializers : enable #endif precision highp float; precision lowp image2D; precision lowp image2DArray; precision lowp image3D; precision lowp imageCube; precision lowp sampler2D; precision lowp sampler3D; precision lowp sampler2DShadow; precision lowp samplerCubeShadow; precision lowp sampler2DArray; precision lowp sampler2DArrayShadow; precision lowp samplerCube; #ifdef GL_EXT_texture_buffer precision lowp samplerBuffer; precision lowp imageBuffer; #endif #ifdef GL_EXT_texture_cube_map_array precision lowp imageCubeArray; precision lowp samplerCubeArray; precision lowp samplerCubeArrayShadow; #endif #ifdef GL_OES_texture_storage_multisample_2d_array precision lowp sampler2DMS; precision lowp sampler2DMSArray; #endif in vec3 Position; in vec4 Color; in vec2 UV0; uniform mat4 ModelViewMat; uniform mat4 ProjMat; out vec4 vertexColor; out vec2 texCoord0; void main() { gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.00000); vertexColor = Color; texCoord0 = UV0; } version string: 150New VGPU Shader source: #version 320 es #define texture2D texture #define attribute in #define varying out precision highp float; precision highp int; uniform sampler2D Sampler0; uniform vec4 ColorModulator; in vec4 vertexColor; in vec2 texCoord0; out vec4 fragColor; void main() { vec4 color = texture(Sampler0, texCoord0).rrrr * vertexColor; if (color.a < 0.100000) { discard; } fragColor = color * ColorModulator; } New VGPU Shader conversion: #version 320 es #ifdef GL_OES_texture_storage_multisample_2d_array #extension GL_OES_texture_storage_multisample_2d_array : enable #endif #ifdef GL_EXT_texture_buffer #extension GL_EXT_texture_buffer : enable #endif #ifdef GL_EXT_texture_cube_map_array #extension GL_EXT_texture_cube_map_array : enable #endif #ifdef GL_EXT_shader_non_constant_global_initializers #extension GL_EXT_shader_non_constant_global_initializers : enable #endif precision highp float; precision lowp image2D; precision lowp image2DArray; precision lowp image3D; precision lowp imageCube; precision lowp sampler2D; precision lowp sampler3D; precision lowp sampler2DShadow; precision lowp samplerCubeShadow; precision lowp sampler2DArray; precision lowp sampler2DArrayShadow; precision lowp samplerCube; #ifdef GL_EXT_texture_buffer precision lowp samplerBuffer; precision lowp imageBuffer; #endif #ifdef GL_EXT_texture_cube_map_array precision lowp imageCubeArray; precision lowp samplerCubeArray; precision lowp samplerCubeArrayShadow; #endif #ifdef GL_OES_texture_storage_multisample_2d_array precision lowp sampler2DMS; precision lowp sampler2DMSArray; #endif uniform sampler2D Sampler0; uniform vec4 ColorModulator; in vec4 vertexColor; in vec2 texCoord0; out vec4 fragColor; void main() { vec4 color = texture(Sampler0, texCoord0).rrrr * vertexColor; if (color.a < 0.100000) { discard; } fragColor = color * ColorModulator; } version string: 150New VGPU Shader source: #version 320 es #define texture2D texture #define attribute in #define varying out precision highp float; precision highp int; #line 0 1 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, int shape) { if (shape == 0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 3 0 in vec3 Position; in vec4 Color; uniform mat4 ModelViewMat; uniform mat4 ProjMat; uniform mat3 IViewRotMat; uniform int FogShape; out float vertexDistance; out vec4 vertexColor; void main() { gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.00000); vertexDistance = fog_distance(ModelViewMat, IViewRotMat * Position, FogShape); vertexColor = Color; } New VGPU Shader conversion: #version 320 es #ifdef GL_OES_texture_storage_multisample_2d_array #extension GL_OES_texture_storage_multisample_2d_array : enable #endif #ifdef GL_EXT_texture_buffer #extension GL_EXT_texture_buffer : enable #endif #ifdef GL_EXT_texture_cube_map_array #extension GL_EXT_texture_cube_map_array : enable #endif #ifdef GL_EXT_shader_non_constant_global_initializers #extension GL_EXT_shader_non_constant_global_initializers : enable #endif precision highp float; precision lowp image2D; precision lowp image2DArray; precision lowp image3D; precision lowp imageCube; precision lowp sampler2D; precision lowp sampler3D; precision lowp sampler2DShadow; precision lowp samplerCubeShadow; precision lowp sampler2DArray; precision lowp sampler2DArrayShadow; precision lowp samplerCube; #ifdef GL_EXT_texture_buffer precision lowp samplerBuffer; precision lowp imageBuffer; #endif #ifdef GL_EXT_texture_cube_map_array precision lowp imageCubeArray; precision lowp samplerCubeArray; precision lowp samplerCubeArrayShadow; #endif #ifdef GL_OES_texture_storage_multisample_2d_array precision lowp sampler2DMS; precision lowp sampler2DMSArray; #endif #line 0 1 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, float shape) { if (shape == 0.0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 3 0 in vec3 Position; in vec4 Color; uniform mat4 ModelViewMat; uniform mat4 ProjMat; uniform mat3 IViewRotMat; uniform float FogShape; out float vertexDistance; out vec4 vertexColor; void main() { gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.00000); vertexDistance = fog_distance(ModelViewMat, IViewRotMat * Position, FogShape); vertexColor = Color; } version string: 150New VGPU Shader source: #version 320 es #define texture2D texture #define attribute in #define varying out precision highp float; precision highp int; #line 0 1 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, int shape) { if (shape == 0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 3 0 uniform vec4 ColorModulator; uniform float FogStart; uniform float FogEnd; in float vertexDistance; in vec4 vertexColor; out vec4 fragColor; void main() { fragColor = vertexColor * ColorModulator * linear_fog_fade(vertexDistance, FogStart, FogEnd); } New VGPU Shader conversion: #version 320 es #ifdef GL_OES_texture_storage_multisample_2d_array #extension GL_OES_texture_storage_multisample_2d_array : enable #endif #ifdef GL_EXT_texture_buffer #extension GL_EXT_texture_buffer : enable #endif #ifdef GL_EXT_texture_cube_map_array #extension GL_EXT_texture_cube_map_array : enable #endif #ifdef GL_EXT_shader_non_constant_global_initializers #extension GL_EXT_shader_non_constant_global_initializers : enable #endif precision highp float; precision lowp image2D; precision lowp image2DArray; precision lowp image3D; precision lowp imageCube; precision lowp sampler2D; precision lowp sampler3D; precision lowp sampler2DShadow; precision lowp samplerCubeShadow; precision lowp sampler2DArray; precision lowp sampler2DArrayShadow; precision lowp samplerCube; #ifdef GL_EXT_texture_buffer precision lowp samplerBuffer; precision lowp imageBuffer; #endif #ifdef GL_EXT_texture_cube_map_array precision lowp imageCubeArray; precision lowp samplerCubeArray; precision lowp samplerCubeArrayShadow; #endif #ifdef GL_OES_texture_storage_multisample_2d_array precision lowp sampler2DMS; precision lowp sampler2DMSArray; #endif #line 0 1 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, float shape) { if (shape == 0.0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 3 0 uniform vec4 ColorModulator; uniform float FogStart; uniform float FogEnd; in float vertexDistance; in vec4 vertexColor; out vec4 fragColor; void main() { fragColor = vertexColor * ColorModulator * linear_fog_fade(vertexDistance, FogStart, FogEnd); } version string: 150New VGPU Shader source: #version 320 es #define texture2D texture #define attribute in #define varying out precision highp float; precision highp int; #line 0 1 #define MINECRAFT_LIGHT_POWER (0.6) #define MINECRAFT_AMBIENT_LIGHT (0.4) vec4 minecraft_mix_light(vec3 lightDir0, vec3 lightDir1, vec3 normal, vec4 color) { lightDir0 = normalize(lightDir0); lightDir1 = normalize(lightDir1); float light0 = max(0.00000, dot(lightDir0, normal)); float light1 = max(0.00000, dot(lightDir1, normal)); float lightAccum = min(1.00000, (light0 + light1) * MINECRAFT_LIGHT_POWER + MINECRAFT_AMBIENT_LIGHT); return vec4(color.rgb * lightAccum, color.a); } vec4 minecraft_sample_lightmap(sampler2D lightMap, ivec2 uv) { return texture(lightMap, clamp(uv / 256.000, vec2(0.500000 / 16.0000), vec2(15.5000 / 16.0000))); } #line 0 2 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, int shape) { if (shape == 0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 4 0 in vec3 Position; in vec4 Color; in vec2 UV0; in ivec2 UV2; in vec3 Normal; uniform sampler2D Sampler2; uniform mat4 ModelViewMat; uniform mat4 ProjMat; uniform vec3 ChunkOffset; uniform int FogShape; out float vertexDistance; out vec4 vertexColor; out vec2 texCoord0; out vec4 normal; void main() { vec3 pos = Position + ChunkOffset; gl_Position = ProjMat * ModelViewMat * vec4(pos, 1.00000); vertexDistance = fog_distance(ModelViewMat, pos, FogShape); vertexColor = Color * minecraft_sample_lightmap(Sampler2, UV2); texCoord0 = UV0; normal = ProjMat * ModelViewMat * vec4(Normal, 0.00000); } New VGPU Shader conversion: #version 320 es #ifdef GL_OES_texture_storage_multisample_2d_array #extension GL_OES_texture_storage_multisample_2d_array : enable #endif #ifdef GL_EXT_texture_buffer #extension GL_EXT_texture_buffer : enable #endif #ifdef GL_EXT_texture_cube_map_array #extension GL_EXT_texture_cube_map_array : enable #endif #ifdef GL_EXT_shader_non_constant_global_initializers #extension GL_EXT_shader_non_constant_global_initializers : enable #endif precision highp float; precision lowp image2D; precision lowp image2DArray; precision lowp image3D; precision lowp imageCube; precision lowp sampler2D; precision lowp sampler3D; precision lowp sampler2DShadow; precision lowp samplerCubeShadow; precision lowp sampler2DArray; precision lowp sampler2DArrayShadow; precision lowp samplerCube; #ifdef GL_EXT_texture_buffer precision lowp samplerBuffer; precision lowp imageBuffer; #endif #ifdef GL_EXT_texture_cube_map_array precision lowp imageCubeArray; precision lowp samplerCubeArray; precision lowp samplerCubeArrayShadow; #endif #ifdef GL_OES_texture_storage_multisample_2d_array precision lowp sampler2DMS; precision lowp sampler2DMSArray; #endif #line 0 1 #define MINECRAFT_LIGHT_POWER (0.6) #define MINECRAFT_AMBIENT_LIGHT (0.4) vec4 minecraft_mix_light(vec3 lightDir0, vec3 lightDir1, vec3 normal, vec4 color) { lightDir0 = normalize(lightDir0); lightDir1 = normalize(lightDir1); float light0 = max(0.00000, dot(lightDir0, normal)); float light1 = max(0.00000, dot(lightDir1, normal)); float lightAccum = min(1.00000, (light0 + light1) * MINECRAFT_LIGHT_POWER + MINECRAFT_AMBIENT_LIGHT); return vec4(color.rgb * lightAccum, color.a); } vec4 minecraft_sample_lightmap(sampler2D lightMap, vec2 uv) { return texture(lightMap, clamp(uv / 256.000, vec2(0.500000 / 16.0000), vec2(15.5000 / 16.0000))); } #line 0 2 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, float shape) { if (shape == 0.0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 4 0 in vec3 Position; in vec4 Color; in vec2 UV0; in vec2 UV2; in vec3 Normal; uniform sampler2D Sampler2; uniform mat4 ModelViewMat; uniform mat4 ProjMat; uniform vec3 ChunkOffset; uniform float FogShape; out float vertexDistance; out vec4 vertexColor; out vec2 texCoord0; out vec4 normal; void main() { vec3 pos = Position + ChunkOffset; gl_Position = ProjMat * ModelViewMat * vec4(pos, 1.00000); vertexDistance = fog_distance(ModelViewMat, pos, FogShape); vertexColor = Color * minecraft_sample_lightmap(Sampler2, UV2); texCoord0 = UV0; normal = ProjMat * ModelViewMat * vec4(Normal, 0.00000); } version string: 150New VGPU Shader source: #version 320 es #define texture2D texture #define attribute in #define varying out precision highp float; precision highp int; #line 0 1 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, int shape) { if (shape == 0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 3 0 uniform sampler2D Sampler0; uniform vec4 ColorModulator; uniform float FogStart; uniform float FogEnd; uniform vec4 FogColor; in float vertexDistance; in vec4 vertexColor; in vec2 texCoord0; in vec4 normal; out vec4 fragColor; void main() { vec4 color = texture(Sampler0, texCoord0) * vertexColor * ColorModulator; if (color.a < 0.100000) { discard; } fragColor = linear_fog(color, vertexDistance, FogStart, FogEnd, FogColor); } New VGPU Shader conversion: #version 320 es #ifdef GL_OES_texture_storage_multisample_2d_array #extension GL_OES_texture_storage_multisample_2d_array : enable #endif #ifdef GL_EXT_texture_buffer #extension GL_EXT_texture_buffer : enable #endif #ifdef GL_EXT_texture_cube_map_array #extension GL_EXT_texture_cube_map_array : enable #endif #ifdef GL_EXT_shader_non_constant_global_initializers #extension GL_EXT_shader_non_constant_global_initializers : enable #endif precision highp float; precision lowp image2D; precision lowp image2DArray; precision lowp image3D; precision lowp imageCube; precision lowp sampler2D; precision lowp sampler3D; precision lowp sampler2DShadow; precision lowp samplerCubeShadow; precision lowp sampler2DArray; precision lowp sampler2DArrayShadow; precision lowp samplerCube; #ifdef GL_EXT_texture_buffer precision lowp samplerBuffer; precision lowp imageBuffer; #endif #ifdef GL_EXT_texture_cube_map_array precision lowp imageCubeArray; precision lowp samplerCubeArray; precision lowp samplerCubeArrayShadow; #endif #ifdef GL_OES_texture_storage_multisample_2d_array precision lowp sampler2DMS; precision lowp sampler2DMSArray; #endif #line 0 1 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, float shape) { if (shape == 0.0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 3 0 uniform sampler2D Sampler0; uniform vec4 ColorModulator; uniform float FogStart; uniform float FogEnd; uniform vec4 FogColor; in float vertexDistance; in vec4 vertexColor; in vec2 texCoord0; in vec4 normal; out vec4 fragColor; void main() { vec4 color = texture(Sampler0, texCoord0) * vertexColor * ColorModulator; if (color.a < 0.100000) { discard; } fragColor = linear_fog(color, vertexDistance, FogStart, FogEnd, FogColor); } version string: 150New VGPU Shader source: #version 320 es #define texture2D texture #define attribute in #define varying out precision highp float; precision highp int; #line 0 1 vec4 projection_from_position(vec4 position) { vec4 projection = position * 0.500000; projection.xy = vec2(projection.x + projection.w, projection.y + projection.w); projection.zw = position.zw; return projection; } #line 3 0 in vec3 Position; uniform mat4 ModelViewMat; uniform mat4 ProjMat; out vec4 texProj0; void main() { gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.00000); texProj0 = projection_from_position(gl_Position); } New VGPU Shader conversion: #version 320 es #ifdef GL_OES_texture_storage_multisample_2d_array #extension GL_OES_texture_storage_multisample_2d_array : enable #endif #ifdef GL_EXT_texture_buffer #extension GL_EXT_texture_buffer : enable #endif #ifdef GL_EXT_texture_cube_map_array #extension GL_EXT_texture_cube_map_array : enable #endif #ifdef GL_EXT_shader_non_constant_global_initializers #extension GL_EXT_shader_non_constant_global_initializers : enable #endif precision highp float; precision lowp image2D; precision lowp image2DArray; precision lowp image3D; precision lowp imageCube; precision lowp sampler2D; precision lowp sampler3D; precision lowp sampler2DShadow; precision lowp samplerCubeShadow; precision lowp sampler2DArray; precision lowp sampler2DArrayShadow; precision lowp samplerCube; #ifdef GL_EXT_texture_buffer precision lowp samplerBuffer; precision lowp imageBuffer; #endif #ifdef GL_EXT_texture_cube_map_array precision lowp imageCubeArray; precision lowp samplerCubeArray; precision lowp samplerCubeArrayShadow; #endif #ifdef GL_OES_texture_storage_multisample_2d_array precision lowp sampler2DMS; precision lowp sampler2DMSArray; #endif #line 0 1 vec4 projection_from_position(vec4 position) { vec4 projection = position * 0.500000; projection.xy = vec2(projection.x + projection.w, projection.y + projection.w); projection.zw = position.zw; return projection; } #line 3 0 in vec3 Position; uniform mat4 ModelViewMat; uniform mat4 ProjMat; out vec4 texProj0; void main() { gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.00000); texProj0 = projection_from_position(gl_Position); } version string: 150New VGPU Shader source: #version 320 es #define texture2D texture #define attribute in #define varying out precision highp float; precision highp int; #line 0 1 mat2 mat2_rotate_z(float radians) { return mat2( cos(radians), -sin(radians), sin(radians), cos(radians) ); } #line 3 0 uniform sampler2D Sampler0; uniform sampler2D Sampler1; uniform float GameTime; uniform int EndPortalLayers; in vec4 texProj0; const vec3[] COLORS = vec3[]( vec3(0.0220870, 0.0983990, 0.110818), vec3(0.0118920, 0.0959240, 0.0894850), vec3(0.0276360, 0.101689, 0.100326), vec3(0.0465640, 0.109883, 0.114838), vec3(0.0649010, 0.117696, 0.0971890), vec3(0.0637610, 0.0868950, 0.123646), vec3(0.0848170, 0.111994, 0.166380), vec3(0.0974890, 0.154120, 0.0910640), vec3(0.106152, 0.131144, 0.195191), vec3(0.0977210, 0.110188, 0.187229), vec3(0.133516, 0.138278, 0.148582), vec3(0.0700060, 0.243332, 0.235792), vec3(0.196766, 0.142899, 0.214696), vec3(0.0472810, 0.315338, 0.321970), vec3(0.204675, 0.390010, 0.302066), vec3(0.0809550, 0.314821, 0.661491) ); const mat4 SCALE_TRANSLATE = mat4( 0.500000, 0.00000, 0.00000, 0.250000, 0.00000, 0.500000, 0.00000, 0.250000, 0.00000, 0.00000, 1.00000, 0.00000, 0.00000, 0.00000, 0.00000, 1.00000 ); mat4 end_portal_layer(float layer) { mat4 translate = mat4( 1.00000, 0.00000, 0.00000, 17.0000 / layer, 0.00000, 1.00000, 0.00000, (2.00000 + layer / 1.50000) * (GameTime * 1.50000), 0.00000, 0.00000, 1.00000, 0.00000, 0.00000, 0.00000, 0.00000, 1.00000 ); mat2 rotate = mat2_rotate_z(radians((layer * layer * 4321.00 + layer * 9.00000) * 2.00000)); mat2 scale = mat2((4.50000 - layer / 4.00000) * 2.00000); return mat4(scale * rotate) * translate * SCALE_TRANSLATE; } out vec4 fragColor; void main() { vec3 color = textureProj(Sampler0, texProj0).rgb * COLORS[0]; for (int i = 0; i < EndPortalLayers; i++) { color += textureProj(Sampler1, texProj0 * end_portal_layer(float(i + 1))).rgb * COLORS[i]; } fragColor = vec4(color, 1.00000); } New VGPU Shader conversion: #version 320 es #ifdef GL_OES_texture_storage_multisample_2d_array #extension GL_OES_texture_storage_multisample_2d_array : enable #endif #ifdef GL_EXT_texture_buffer #extension GL_EXT_texture_buffer : enable #endif #ifdef GL_EXT_texture_cube_map_array #extension GL_EXT_texture_cube_map_array : enable #endif #ifdef GL_EXT_shader_non_constant_global_initializers #extension GL_EXT_shader_non_constant_global_initializers : enable #endif precision highp float; precision lowp image2D; precision lowp image2DArray; precision lowp image3D; precision lowp imageCube; precision lowp sampler2D; precision lowp sampler3D; precision lowp sampler2DShadow; precision lowp samplerCubeShadow; precision lowp sampler2DArray; precision lowp sampler2DArrayShadow; precision lowp samplerCube; #ifdef GL_EXT_texture_buffer precision lowp samplerBuffer; precision lowp imageBuffer; #endif #ifdef GL_EXT_texture_cube_map_array precision lowp imageCubeArray; precision lowp samplerCubeArray; precision lowp samplerCubeArrayShadow; #endif #ifdef GL_OES_texture_storage_multisample_2d_array precision lowp sampler2DMS; precision lowp sampler2DMSArray; #endif #line 0 1 mat2 mat2_rotate_z(float radians) { return mat2( cos(radians), -sin(radians), sin(radians), cos(radians) ); } #line 3 0 uniform sampler2D Sampler0; uniform sampler2D Sampler1; uniform float GameTime; uniform float EndPortalLayers; in vec4 texProj0; const vec3[] COLORS = vec3[]( vec3(0.0220870, 0.0983990, 0.110818), vec3(0.0118920, 0.0959240, 0.0894850), vec3(0.0276360, 0.101689, 0.100326), vec3(0.0465640, 0.109883, 0.114838), vec3(0.0649010, 0.117696, 0.0971890), vec3(0.0637610, 0.0868950, 0.123646), vec3(0.0848170, 0.111994, 0.166380), vec3(0.0974890, 0.154120, 0.0910640), vec3(0.106152, 0.131144, 0.195191), vec3(0.0977210, 0.110188, 0.187229), vec3(0.133516, 0.138278, 0.148582), vec3(0.0700060, 0.243332, 0.235792), vec3(0.196766, 0.142899, 0.214696), vec3(0.0472810, 0.315338, 0.321970), vec3(0.204675, 0.390010, 0.302066), vec3(0.0809550, 0.314821, 0.661491) ); const mat4 SCALE_TRANSLATE = mat4( 0.500000, 0.00000, 0.00000, 0.250000, 0.00000, 0.500000, 0.00000, 0.250000, 0.00000, 0.00000, 1.00000, 0.00000, 0.00000, 0.00000, 0.00000, 1.00000 ); mat4 end_portal_layer(float layer) { mat4 translate = mat4( 1.00000, 0.00000, 0.00000, 17.0000 / layer, 0.00000, 1.00000, 0.00000, (2.00000 + layer / 1.50000) * (GameTime * 1.50000), 0.00000, 0.00000, 1.00000, 0.00000, 0.00000, 0.00000, 0.00000, 1.00000 ); mat2 rotate = mat2_rotate_z(radians((layer * layer * 4321.00 + layer * 9.00000) * 2.00000)); mat2 scale = mat2((4.50000 - layer / 4.00000) * 2.00000); return mat4(scale * rotate) * translate * SCALE_TRANSLATE; } out vec4 fragColor; void main() { vec3 color = textureProj(Sampler0, texProj0).rgb * COLORS[0]; for (float i = 0.0; i < EndPortalLayers; i++) { color += textureProj(Sampler1, texProj0 * end_portal_layer(float(i + 1.0))).rgb * COLORS[int(i)]; } fragColor = vec4(color, 1.00000); } version string: 150New VGPU Shader source: #version 320 es #define texture2D texture #define attribute in #define varying out precision highp float; precision highp int; #line 0 1 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, int shape) { if (shape == 0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 3 0 in vec3 Position; in vec4 Color; in vec3 Normal; uniform mat4 ModelViewMat; uniform mat4 ProjMat; uniform float LineWidth; uniform vec2 ScreenSize; uniform int FogShape; out float vertexDistance; out vec4 vertexColor; const float VIEW_SHRINK = 1.00000 - (1.00000 / 256.000); const mat4 VIEW_SCALE = mat4( VIEW_SHRINK, 0.00000, 0.00000, 0.00000, 0.00000, VIEW_SHRINK, 0.00000, 0.00000, 0.00000, 0.00000, VIEW_SHRINK, 0.00000, 0.00000, 0.00000, 0.00000, 1.00000 ); void main() { vec4 linePosStart = ProjMat * VIEW_SCALE * ModelViewMat * vec4(Position, 1.00000); vec4 linePosEnd = ProjMat * VIEW_SCALE * ModelViewMat * vec4(Position + Normal, 1.00000); vec3 ndc1 = linePosStart.xyz / linePosStart.w; vec3 ndc2 = linePosEnd.xyz / linePosEnd.w; vec2 lineScreenDirection = normalize((ndc2.xy - ndc1.xy) * ScreenSize); vec2 lineOffset = vec2(-lineScreenDirection.y, lineScreenDirection.x) * LineWidth / ScreenSize; if (lineOffset.x < 0.00000) { lineOffset *= -1.00000; } if (gl_VertexID % 2 == 0) { gl_Position = vec4((ndc1 + vec3(lineOffset, 0.00000)) * linePosStart.w, linePosStart.w); } else { gl_Position = vec4((ndc1 - vec3(lineOffset, 0.00000)) * linePosStart.w, linePosStart.w); } vertexDistance = fog_distance(ModelViewMat, Position, FogShape); vertexColor = Color; } New VGPU Shader conversion: #version 320 es #ifdef GL_OES_texture_storage_multisample_2d_array #extension GL_OES_texture_storage_multisample_2d_array : enable #endif #ifdef GL_EXT_texture_buffer #extension GL_EXT_texture_buffer : enable #endif #ifdef GL_EXT_texture_cube_map_array #extension GL_EXT_texture_cube_map_array : enable #endif #ifdef GL_EXT_shader_non_constant_global_initializers #extension GL_EXT_shader_non_constant_global_initializers : enable #endif precision highp float; precision lowp image2D; precision lowp image2DArray; precision lowp image3D; precision lowp imageCube; precision lowp sampler2D; precision lowp sampler3D; precision lowp sampler2DShadow; precision lowp samplerCubeShadow; precision lowp sampler2DArray; precision lowp sampler2DArrayShadow; precision lowp samplerCube; #ifdef GL_EXT_texture_buffer precision lowp samplerBuffer; precision lowp imageBuffer; #endif #ifdef GL_EXT_texture_cube_map_array precision lowp imageCubeArray; precision lowp samplerCubeArray; precision lowp samplerCubeArrayShadow; #endif #ifdef GL_OES_texture_storage_multisample_2d_array precision lowp sampler2DMS; precision lowp sampler2DMSArray; #endif #line 0 1 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, float shape) { if (shape == 0.0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 3 0 in vec3 Position; in vec4 Color; in vec3 Normal; uniform mat4 ModelViewMat; uniform mat4 ProjMat; uniform float LineWidth; uniform vec2 ScreenSize; uniform float FogShape; out float vertexDistance; out vec4 vertexColor; const float VIEW_SHRINK = 1.00000 - (1.00000 / 256.000); const mat4 VIEW_SCALE = mat4( VIEW_SHRINK, 0.00000, 0.00000, 0.00000, 0.00000, VIEW_SHRINK, 0.00000, 0.00000, 0.00000, 0.00000, VIEW_SHRINK, 0.00000, 0.00000, 0.00000, 0.00000, 1.00000 ); void main() { vec4 linePosStart = ProjMat * VIEW_SCALE * ModelViewMat * vec4(Position, 1.00000); vec4 linePosEnd = ProjMat * VIEW_SCALE * ModelViewMat * vec4(Position + Normal, 1.00000); vec3 ndc1 = linePosStart.xyz / linePosStart.w; vec3 ndc2 = linePosEnd.xyz / linePosEnd.w; vec2 lineScreenDirection = normalize((ndc2.xy - ndc1.xy) * ScreenSize); vec2 lineOffset = vec2(-lineScreenDirection.y, lineScreenDirection.x) * LineWidth / ScreenSize; if (lineOffset.x < 0.00000) { lineOffset *= -1.00000; } if ( mod(float(gl_VertexID), 2.0 ) == 0.0) { gl_Position = vec4((ndc1 + vec3(lineOffset, 0.00000)) * linePosStart.w, linePosStart.w); } else { gl_Position = vec4((ndc1 - vec3(lineOffset, 0.00000)) * linePosStart.w, linePosStart.w); } vertexDistance = fog_distance(ModelViewMat, Position, FogShape); vertexColor = Color; } version string: 150New VGPU Shader source: #version 320 es #define texture2D texture #define attribute in #define varying out precision highp float; precision highp int; #line 0 1 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, int shape) { if (shape == 0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 3 0 uniform vec4 ColorModulator; uniform float FogStart; uniform float FogEnd; uniform vec4 FogColor; in float vertexDistance; in vec4 vertexColor; out vec4 fragColor; void main() { vec4 color = vertexColor * ColorModulator; fragColor = linear_fog(color, vertexDistance, FogStart, FogEnd, FogColor); } New VGPU Shader conversion: #version 320 es #ifdef GL_OES_texture_storage_multisample_2d_array #extension GL_OES_texture_storage_multisample_2d_array : enable #endif #ifdef GL_EXT_texture_buffer #extension GL_EXT_texture_buffer : enable #endif #ifdef GL_EXT_texture_cube_map_array #extension GL_EXT_texture_cube_map_array : enable #endif #ifdef GL_EXT_shader_non_constant_global_initializers #extension GL_EXT_shader_non_constant_global_initializers : enable #endif precision highp float; precision lowp image2D; precision lowp image2DArray; precision lowp image3D; precision lowp imageCube; precision lowp sampler2D; precision lowp sampler3D; precision lowp sampler2DShadow; precision lowp samplerCubeShadow; precision lowp sampler2DArray; precision lowp sampler2DArrayShadow; precision lowp samplerCube; #ifdef GL_EXT_texture_buffer precision lowp samplerBuffer; precision lowp imageBuffer; #endif #ifdef GL_EXT_texture_cube_map_array precision lowp imageCubeArray; precision lowp samplerCubeArray; precision lowp samplerCubeArrayShadow; #endif #ifdef GL_OES_texture_storage_multisample_2d_array precision lowp sampler2DMS; precision lowp sampler2DMSArray; #endif #line 0 1 vec4 linear_fog(vec4 inColor, float vertexDistance, float fogStart, float fogEnd, vec4 fogColor) { if (vertexDistance <= fogStart) { return inColor; } float fogValue = vertexDistance < fogEnd ? smoothstep(fogStart, fogEnd, vertexDistance) : 1.00000; return vec4(mix(inColor.rgb, fogColor.rgb, fogValue * fogColor.a), inColor.a); } float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) { if (vertexDistance <= fogStart) { return 1.00000; } else if (vertexDistance >= fogEnd) { return 0.00000; } return smoothstep(fogEnd, fogStart, vertexDistance); } float fog_distance(mat4 modelViewMat, vec3 pos, float shape) { if (shape == 0.0) { return length((modelViewMat * vec4(pos, 1.00000)).xyz); } else { float distXZ = length((modelViewMat * vec4(pos.x, 0.00000, pos.z, 1.00000)).xyz); float distY = length((modelViewMat * vec4(0.00000, pos.y, 0.00000, 1.00000)).xyz); return max(distXZ, distY); } } #line 3 0 uniform vec4 ColorModulator; uniform float FogStart; uniform float FogEnd; uniform vec4 FogColor; in float vertexDistance; in vec4 vertexColor; out vec4 fragColor; void main() { vec4 color = vertexColor * ColorModulator; fragColor = linear_fog(color, vertexDistance, FogStart, FogEnd, FogColor); } version string: 150New VGPU Shader source: #version 320 es #define texture2D texture #define attribute in #define varying out precision highp float; precision highp int; in vec3 Position; in vec4 Color; in vec2 UV0; in vec2 UV2; in vec3 Normal; uniform mat4 ModelViewMat; uniform mat4 ProjMat; out vec4 vertexColor; out vec2 texCoord0; out vec2 texCoord2; out vec4 normal; void main() { gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.00000); vertexColor = Color; texCoord0 = UV0; texCoord2 = UV2; normal = ProjMat * ModelViewMat * vec4(Normal, 0.00000); } New VGPU Shader conversion: #version 320 es #ifdef GL_OES_texture_storage_multisample_2d_array #extension GL_OES_texture_storage_multisample_2d_array : enable #endif #ifdef GL_EXT_texture_buffer #extension GL_EXT_texture_buffer : enable #endif #ifdef GL_EXT_texture_cube_map_array #extension GL_EXT_texture_cube_map_array : enable #endif #ifdef GL_EXT_shader_non_constant_global_initializers #extension GL_EXT_shader_non_constant_global_initializers : enable #endif precision highp float; precision lowp image2D; precision lowp image2DArray; precision lowp image3D; precision lowp imageCube; precision lowp sampler2D; precision lowp sampler3D; precision lowp sampler2DShadow; precision lowp samplerCubeShadow; precision lowp sampler2DArray; precision lowp sampler2DArrayShadow; precision lowp samplerCube; #ifdef GL_EXT_texture_buffer precision lowp samplerBuffer; precision lowp imageBuffer; #endif #ifdef GL_EXT_texture_cube_map_array precision lowp imageCubeArray; precision lowp samplerCubeArray; precision lowp samplerCubeArrayShadow; #endif #ifdef GL_OES_texture_storage_multisample_2d_array precision lowp sampler2DMS; precision lowp sampler2DMSArray; #endif in vec3 Position; in vec4 Color; in vec2 UV0; in vec2 UV2; in vec3 Normal; uniform mat4 ModelViewMat; uniform mat4 ProjMat; out vec4 vertexColor; out vec2 texCoord0; out vec2 texCoord2; out vec4 normal; void main() { gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.00000); vertexColor = Color; texCoord0 = UV0; texCoord2 = UV2; normal = ProjMat * ModelViewMat * vec4(Normal, 0.00000); } version string: 150New VGPU Shader source: #version 320 es #define texture2D texture #define attribute in #define varying out precision highp float; precision highp int; uniform sampler2D Sampler0; uniform vec4 ColorModulator; in vec4 vertexColor; in vec2 texCoord0; in vec2 texCoord2; in vec4 normal; out vec4 fragColor; void main() { vec4 color = texture(Sampler0, texCoord0) * vertexColor; if (color.a < 0.100000) { discard; } fragColor = color * ColorModulator; } New VGPU Shader conversion: #version 320 es #ifdef GL_OES_texture_storage_multisample_2d_array #extension GL_OES_texture_storage_multisample_2d_array : enable #endif #ifdef GL_EXT_texture_buffer #extension GL_EXT_texture_buffer : enable #endif #ifdef GL_EXT_texture_cube_map_array #extension GL_EXT_texture_cube_map_array : enable #endif #ifdef GL_EXT_shader_non_constant_global_initializers #extension GL_EXT_shader_non_constant_global_initializers : enable #endif precision highp float; precision lowp image2D; precision lowp image2DArray; precision lowp image3D; precision lowp imageCube; precision lowp sampler2D; precision lowp sampler3D; precision lowp sampler2DShadow; precision lowp samplerCubeShadow; precision lowp sampler2DArray; precision lowp sampler2DArrayShadow; precision lowp samplerCube; #ifdef GL_EXT_texture_buffer precision lowp samplerBuffer; precision lowp imageBuffer; #endif #ifdef GL_EXT_texture_cube_map_array precision lowp imageCubeArray; precision lowp samplerCubeArray; precision lowp samplerCubeArrayShadow; #endif #ifdef GL_OES_texture_storage_multisample_2d_array precision lowp sampler2DMS; precision lowp sampler2DMSArray; #endif uniform sampler2D Sampler0; uniform vec4 ColorModulator; in vec4 vertexColor; in vec2 texCoord0; in vec2 texCoord2; in vec4 normal; out vec4 fragColor; void main() { vec4 color = texture(Sampler0, texCoord0) * vertexColor; if (color.a < 0.100000) { discard; } fragColor = color * ColorModulator; } version string: 150New VGPU Shader source: #version 320 es #define texture2D texture #define attribute in #define varying out precision highp float; precision highp int; in vec3 Position; in vec4 Color; uniform mat4 ModelViewMat; uniform mat4 ProjMat; out vec4 vertexColor; void main() { gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.00000); vertexColor = Color; } New VGPU Shader conversion: #version 320 es #ifdef GL_OES_texture_storage_multisample_2d_array #extension GL_OES_texture_storage_multisample_2d_array : enable #endif #ifdef GL_EXT_texture_buffer #extension GL_EXT_texture_buffer : enable #endif #ifdef GL_EXT_texture_cube_map_array #extension GL_EXT_texture_cube_map_array : enable #endif #ifdef GL_EXT_shader_non_constant_global_initializers #extension GL_EXT_shader_non_constant_global_initializers : enable #endif precision highp float; precision lowp image2D; precision lowp image2DArray; precision lowp image3D; precision lowp imageCube; precision lowp sampler2D; precision lowp sampler3D; precision lowp sampler2DShadow; precision lowp samplerCubeShadow; precision lowp sampler2DArray; precision lowp sampler2DArrayShadow; precision lowp samplerCube; #ifdef GL_EXT_texture_buffer precision lowp samplerBuffer; precision lowp imageBuffer; #endif #ifdef GL_EXT_texture_cube_map_array precision lowp imageCubeArray; precision lowp samplerCubeArray; precision lowp samplerCubeArrayShadow; #endif #ifdef GL_OES_texture_storage_multisample_2d_array precision lowp sampler2DMS; precision lowp sampler2DMSArray; #endif in vec3 Position; in vec4 Color; uniform mat4 ModelViewMat; uniform mat4 ProjMat; out vec4 vertexColor; void main() { gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.00000); vertexColor = Color; } version string: 150New VGPU Shader source: #version 320 es #define texture2D texture #define attribute in #define varying out precision highp float; precision highp int; in vec4 vertexColor; uniform vec4 ColorModulator; out vec4 fragColor; void main() { vec4 color = vertexColor; if (color.a == 0.00000) { discard; } fragColor = color * ColorModulator; } New VGPU Shader conversion: #version 320 es #ifdef GL_OES_texture_storage_multisample_2d_array #extension GL_OES_texture_storage_multisample_2d_array : enable #endif #ifdef GL_EXT_texture_buffer #extension GL_EXT_texture_buffer : enable #endif #ifdef GL_EXT_texture_cube_map_array #extension GL_EXT_texture_cube_map_array : enable #endif #ifdef GL_EXT_shader_non_constant_global_initializers #extension GL_EXT_shader_non_constant_global_initializers : enable #endif precision highp float; precision lowp image2D; precision lowp image2DArray; precision lowp image3D; precision lowp imageCube; precision lowp sampler2D; precision lowp sampler3D; precision lowp sampler2DShadow; precision lowp samplerCubeShadow; precision lowp sampler2DArray; precision lowp sampler2DArrayShadow; precision lowp samplerCube; #ifdef GL_EXT_texture_buffer precision lowp samplerBuffer; precision lowp imageBuffer; #endif #ifdef GL_EXT_texture_cube_map_array precision lowp imageCubeArray; precision lowp samplerCubeArray; precision lowp samplerCubeArrayShadow; #endif #ifdef GL_OES_texture_storage_multisample_2d_array precision lowp sampler2DMS; precision lowp sampler2DMSArray; #endif in vec4 vertexColor; uniform vec4 ColorModulator; out vec4 fragColor; void main() { vec4 color = vertexColor; if (color.a == 0.00000) { discard; } fragColor = color * ColorModulator; } version string: 150New VGPU Shader source: #version 320 es #define texture2D texture #define attribute in #define varying out precision highp float; precision highp int; in vec3 Position; in vec4 Color; uniform mat4 ModelViewMat; uniform mat4 ProjMat; out vec4 vertexColor; void main() { gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.00000); vertexColor = Color; } New VGPU Shader conversion: #version 320 es #ifdef GL_OES_texture_storage_multisample_2d_array #extension GL_OES_texture_storage_multisample_2d_array : enable #endif #ifdef GL_EXT_texture_buffer #extension GL_EXT_texture_buffer : enable #endif #ifdef GL_EXT_texture_cube_map_array #extension GL_EXT_texture_cube_map_array : enable #endif #ifdef GL_EXT_shader_non_constant_global_initializers #extension GL_EXT_shader_non_constant_global_initializers : enable #endif precision highp float; precision lowp image2D; precision lowp image2DArray; precision lowp image3D; precision lowp imageCube; precision lowp sampler2D; precision lowp sampler3D; precision lowp sampler2DShadow; precision lowp samplerCubeShadow; precision lowp sampler2DArray; precision lowp sampler2DArrayShadow; precision lowp samplerCube; #ifdef GL_EXT_texture_buffer precision lowp samplerBuffer; precision lowp imageBuffer; #endif #ifdef GL_EXT_texture_cube_map_array precision lowp imageCubeArray; precision lowp samplerCubeArray; precision lowp samplerCubeArrayShadow; #endif #ifdef GL_OES_texture_storage_multisample_2d_array precision lowp sampler2DMS; precision lowp sampler2DMSArray; #endif in vec3 Position; in vec4 Color; uniform mat4 ModelViewMat; uniform mat4 ProjMat; out vec4 vertexColor; void main() { gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.00000); vertexColor = Color; } version string: 150New VGPU Shader source: #version 320 es #define texture2D texture #define attribute in #define varying out precision highp float; precision highp int; in vec4 vertexColor; uniform vec4 ColorModulator; out vec4 fragColor; void main() { vec4 color = vertexColor; if (color.a == 0.00000) { discard; } fragColor = color * ColorModulator; } New VGPU Shader conversion: #version 320 es #ifdef GL_OES_texture_storage_multisample_2d_array #extension GL_OES_texture_storage_multisample_2d_array : enable #endif #ifdef GL_EXT_texture_buffer #extension GL_EXT_texture_buffer : enable #endif #ifdef GL_EXT_texture_cube_map_array #extension GL_EXT_texture_cube_map_array : enable #endif #ifdef GL_EXT_shader_non_constant_global_initializers #extension GL_EXT_shader_non_constant_global_initializers : enable #endif precision highp float; precision lowp image2D; precision lowp image2DArray; precision lowp image3D; precision lowp imageCube; precision lowp sampler2D; precision lowp sampler3D; precision lowp sampler2DShadow; precision lowp samplerCubeShadow; precision lowp sampler2DArray; precision lowp sampler2DArrayShadow; precision lowp samplerCube; #ifdef GL_EXT_texture_buffer precision lowp samplerBuffer; precision lowp imageBuffer; #endif #ifdef GL_EXT_texture_cube_map_array precision lowp imageCubeArray; precision lowp samplerCubeArray; precision lowp samplerCubeArrayShadow; #endif #ifdef GL_OES_texture_storage_multisample_2d_array precision lowp sampler2DMS; precision lowp sampler2DMSArray; #endif in vec4 vertexColor; uniform vec4 ColorModulator; out vec4 fragColor; void main() { vec4 color = vertexColor; if (color.a == 0.00000) { discard; } fragColor = color * ColorModulator; } version string: 150New VGPU Shader source: #version 320 es #define texture2D texture #define attribute in #define varying out precision highp float; precision highp int; in vec3 Position; in vec4 Color; uniform mat4 ModelViewMat; uniform mat4 ProjMat; out vec4 vertexColor; void main() { gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.00000); vertexColor = Color; } New VGPU Shader conversion: #version 320 es #ifdef GL_OES_texture_storage_multisample_2d_array #extension GL_OES_texture_storage_multisample_2d_array : enable #endif #ifdef GL_EXT_texture_buffer #extension GL_EXT_texture_buffer : enable #endif #ifdef GL_EXT_texture_cube_map_array #extension GL_EXT_texture_cube_map_array : enable #endif #ifdef GL_EXT_shader_non_constant_global_initializers #extension GL_EXT_shader_non_constant_global_initializers : enable #endif precision highp float; precision lowp image2D; precision lowp image2DArray; precision lowp image3D; precision lowp imageCube; precision lowp sampler2D; precision lowp sampler3D; precision lowp sampler2DShadow; precision lowp samplerCubeShadow; precision lowp sampler2DArray; precision lowp sampler2DArrayShadow; precision lowp samplerCube; #ifdef GL_EXT_texture_buffer precision lowp samplerBuffer; precision lowp imageBuffer; #endif #ifdef GL_EXT_texture_cube_map_array precision lowp imageCubeArray; precision lowp samplerCubeArray; precision lowp samplerCubeArrayShadow; #endif #ifdef GL_OES_texture_storage_multisample_2d_array precision lowp sampler2DMS; precision lowp sampler2DMSArray; #endif in vec3 Position; in vec4 Color; uniform mat4 ModelViewMat; uniform mat4 ProjMat; out vec4 vertexColor; void main() { gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.00000); vertexColor = Color; } version string: 150New VGPU Shader source: #version 320 es #define texture2D texture #define attribute in #define varying out precision highp float; precision highp int; in vec4 vertexColor; uniform vec4 ColorModulator; out vec4 fragColor; void main() { vec4 color = vertexColor; if (color.a == 0.00000) { discard; } fragColor = color * ColorModulator; } New VGPU Shader conversion: #version 320 es #ifdef GL_OES_texture_storage_multisample_2d_array #extension GL_OES_texture_storage_multisample_2d_array : enable #endif #ifdef GL_EXT_texture_buffer #extension GL_EXT_texture_buffer : enable #endif #ifdef GL_EXT_texture_cube_map_array #extension GL_EXT_texture_cube_map_array : enable #endif #ifdef GL_EXT_shader_non_constant_global_initializers #extension GL_EXT_shader_non_constant_global_initializers : enable #endif precision highp float; precision lowp image2D; precision lowp image2DArray; precision lowp image3D; precision lowp imageCube; precision lowp sampler2D; precision lowp sampler3D; precision lowp sampler2DShadow; precision lowp samplerCubeShadow; precision lowp sampler2DArray; precision lowp sampler2DArrayShadow; precision lowp samplerCube; #ifdef GL_EXT_texture_buffer precision lowp samplerBuffer; precision lowp imageBuffer; #endif #ifdef GL_EXT_texture_cube_map_array precision lowp imageCubeArray; precision lowp samplerCubeArray; precision lowp samplerCubeArrayShadow; #endif #ifdef GL_OES_texture_storage_multisample_2d_array precision lowp sampler2DMS; precision lowp sampler2DMSArray; #endif in vec4 vertexColor; uniform vec4 ColorModulator; out vec4 fragColor; void main() { vec4 color = vertexColor; if (color.a == 0.00000) { discard; } fragColor = color * ColorModulator; } version string: 150New VGPU Shader source: #version 320 es #define texture2D texture #define attribute in #define varying out precision highp float; precision highp int; in vec3 Position; in vec4 Color; uniform mat4 ModelViewMat; uniform mat4 ProjMat; out vec4 vertexColor; void main() { gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.00000); vertexColor = Color; } New VGPU Shader conversion: #version 320 es #ifdef GL_OES_texture_storage_multisample_2d_array #extension GL_OES_texture_storage_multisample_2d_array : enable #endif #ifdef GL_EXT_texture_buffer #extension GL_EXT_texture_buffer : enable #endif #ifdef GL_EXT_texture_cube_map_array #extension GL_EXT_texture_cube_map_array : enable #endif #ifdef GL_EXT_shader_non_constant_global_initializers #extension GL_EXT_shader_non_constant_global_initializers : enable #endif precision highp float; precision lowp image2D; precision lowp image2DArray; precision lowp image3D; precision lowp imageCube; precision lowp sampler2D; precision lowp sampler3D; precision lowp sampler2DShadow; precision lowp samplerCubeShadow; precision lowp sampler2DArray; precision lowp sampler2DArrayShadow; precision lowp samplerCube; #ifdef GL_EXT_texture_buffer precision lowp samplerBuffer; precision lowp imageBuffer; #endif #ifdef GL_EXT_texture_cube_map_array precision lowp imageCubeArray; precision lowp samplerCubeArray; precision lowp samplerCubeArrayShadow; #endif #ifdef GL_OES_texture_storage_multisample_2d_array precision lowp sampler2DMS; precision lowp sampler2DMSArray; #endif in vec3 Position; in vec4 Color; uniform mat4 ModelViewMat; uniform mat4 ProjMat; out vec4 vertexColor; void main() { gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.00000); vertexColor = Color; } version string: 150New VGPU Shader source: #version 320 es #define texture2D texture #define attribute in #define varying out precision highp float; precision highp int; in vec4 vertexColor; uniform vec4 ColorModulator; out vec4 fragColor; void main() { vec4 color = vertexColor; if (color.a == 0.00000) { discard; } fragColor = color * ColorModulator; } New VGPU Shader conversion: #version 320 es #ifdef GL_OES_texture_storage_multisample_2d_array #extension GL_OES_texture_storage_multisample_2d_array : enable #endif #ifdef GL_EXT_texture_buffer #extension GL_EXT_texture_buffer : enable #endif #ifdef GL_EXT_texture_cube_map_array #extension GL_EXT_texture_cube_map_array : enable #endif #ifdef GL_EXT_shader_non_constant_global_initializers #extension GL_EXT_shader_non_constant_global_initializers : enable #endif precision highp float; precision lowp image2D; precision lowp image2DArray; precision lowp image3D; precision lowp imageCube; precision lowp sampler2D; precision lowp sampler3D; precision lowp sampler2DShadow; precision lowp samplerCubeShadow; precision lowp sampler2DArray; precision lowp sampler2DArrayShadow; precision lowp samplerCube; #ifdef GL_EXT_texture_buffer precision lowp samplerBuffer; precision lowp imageBuffer; #endif #ifdef GL_EXT_texture_cube_map_array precision lowp imageCubeArray; precision lowp samplerCubeArray; precision lowp samplerCubeArrayShadow; #endif #ifdef GL_OES_texture_storage_multisample_2d_array precision lowp sampler2DMS; precision lowp sampler2DMSArray; #endif in vec4 vertexColor; uniform vec4 ColorModulator; out vec4 fragColor; void main() { vec4 color = vertexColor; if (color.a == 0.00000) { discard; } fragColor = color * ColorModulator; } version string: 150New VGPU Shader source: #version 320 es #define texture2D texture #define attribute in #define varying out precision highp float; precision highp int; in vec4 Position; uniform mat4 ProjMat; uniform vec2 InSize; uniform vec2 OutSize; out vec2 texCoord; out vec2 oneTexel; void main(){ vec4 outPos = ProjMat * vec4(Position.xy, 0.00000, 1.00000); gl_Position = vec4(outPos.xy, 0.200000, 1.00000); oneTexel = 1.00000 / InSize; texCoord = Position.xy / OutSize; } New VGPU Shader conversion: #version 320 es #ifdef GL_OES_texture_storage_multisample_2d_array #extension GL_OES_texture_storage_multisample_2d_array : enable #endif #ifdef GL_EXT_texture_buffer #extension GL_EXT_texture_buffer : enable #endif #ifdef GL_EXT_texture_cube_map_array #extension GL_EXT_texture_cube_map_array : enable #endif #ifdef GL_EXT_shader_non_constant_global_initializers #extension GL_EXT_shader_non_constant_global_initializers : enable #endif precision highp float; precision lowp image2D; precision lowp image2DArray; precision lowp image3D; precision lowp imageCube; precision lowp sampler2D; precision lowp sampler3D; precision lowp sampler2DShadow; precision lowp samplerCubeShadow; precision lowp sampler2DArray; precision lowp sampler2DArrayShadow; precision lowp samplerCube; #ifdef GL_EXT_texture_buffer precision lowp samplerBuffer; precision lowp imageBuffer; #endif #ifdef GL_EXT_texture_cube_map_array precision lowp imageCubeArray; precision lowp samplerCubeArray; precision lowp samplerCubeArrayShadow; #endif #ifdef GL_OES_texture_storage_multisample_2d_array precision lowp sampler2DMS; precision lowp sampler2DMSArray; #endif in vec4 Position; uniform mat4 ProjMat; uniform vec2 InSize; uniform vec2 OutSize; out vec2 texCoord; out vec2 oneTexel; void main(){ vec4 outPos = ProjMat * vec4(Position.xy, 0.00000, 1.00000); gl_Position = vec4(outPos.xy, 0.200000, 1.00000); oneTexel = 1.00000 / InSize; texCoord = Position.xy / OutSize; } version string: 150New VGPU Shader source: #version 320 es #define texture2D texture #define attribute in #define varying out precision highp float; precision highp int; uniform sampler2D DiffuseSampler; in vec2 texCoord; in vec2 oneTexel; out vec4 fragColor; void main(){ vec4 center = texture(DiffuseSampler, texCoord); vec4 left = texture(DiffuseSampler, texCoord - vec2(oneTexel.x, 0.00000)); vec4 right = texture(DiffuseSampler, texCoord + vec2(oneTexel.x, 0.00000)); vec4 up = texture(DiffuseSampler, texCoord - vec2(0.00000, oneTexel.y)); vec4 down = texture(DiffuseSampler, texCoord + vec2(0.00000, oneTexel.y)); float leftDiff = abs(center.a - left.a); float rightDiff = abs(center.a - right.a); float upDiff = abs(center.a - up.a); float downDiff = abs(center.a - down.a); float total = clamp(leftDiff + rightDiff + upDiff + downDiff, 0.00000, 1.00000); vec3 outColor = center.rgb * center.a + left.rgb * left.a + right.rgb * right.a + up.rgb * up.a + down.rgb * down.a; fragColor = vec4(outColor * 0.200000, total); } New VGPU Shader conversion: #version 320 es #ifdef GL_OES_texture_storage_multisample_2d_array #extension GL_OES_texture_storage_multisample_2d_array : enable #endif #ifdef GL_EXT_texture_buffer #extension GL_EXT_texture_buffer : enable #endif #ifdef GL_EXT_texture_cube_map_array #extension GL_EXT_texture_cube_map_array : enable #endif #ifdef GL_EXT_shader_non_constant_global_initializers #extension GL_EXT_shader_non_constant_global_initializers : enable #endif precision highp float; precision lowp image2D; precision lowp image2DArray; precision lowp image3D; precision lowp imageCube; precision lowp sampler2D; precision lowp sampler3D; precision lowp sampler2DShadow; precision lowp samplerCubeShadow; precision lowp sampler2DArray; precision lowp sampler2DArrayShadow; precision lowp samplerCube; #ifdef GL_EXT_texture_buffer precision lowp samplerBuffer; precision lowp imageBuffer; #endif #ifdef GL_EXT_texture_cube_map_array precision lowp imageCubeArray; precision lowp samplerCubeArray; precision lowp samplerCubeArrayShadow; #endif #ifdef GL_OES_texture_storage_multisample_2d_array precision lowp sampler2DMS; precision lowp sampler2DMSArray; #endif uniform sampler2D DiffuseSampler; in vec2 texCoord; in vec2 oneTexel; out vec4 fragColor; void main(){ vec4 center = texture(DiffuseSampler, texCoord); vec4 left = texture(DiffuseSampler, texCoord - vec2(oneTexel.x, 0.00000)); vec4 right = texture(DiffuseSampler, texCoord + vec2(oneTexel.x, 0.00000)); vec4 up = texture(DiffuseSampler, texCoord - vec2(0.00000, oneTexel.y)); vec4 down = texture(DiffuseSampler, texCoord + vec2(0.00000, oneTexel.y)); float leftDiff = abs(center.a - left.a); float rightDiff = abs(center.a - right.a); float upDiff = abs(center.a - up.a); float downDiff = abs(center.a - down.a); float total = clamp(leftDiff + rightDiff + upDiff + downDiff, 0.00000, 1.00000); vec3 outColor = center.rgb * center.a + left.rgb * left.a + right.rgb * right.a + up.rgb * up.a + down.rgb * down.a; fragColor = vec4(outColor * 0.200000, total); } version string: 150New VGPU Shader source: #version 320 es #define texture2D texture #define attribute in #define varying out precision highp float; precision highp int; uniform sampler2D DiffuseSampler; in vec2 texCoord; in vec2 oneTexel; uniform vec2 InSize; uniform vec2 BlurDir; uniform float Radius; out vec4 fragColor; void main() { vec4 blurred = vec4(0.00000); float totalStrength = 0.00000; float totalAlpha = 0.00000; float totalSamples = 0.00000; for(float r = -Radius; r <= Radius; r += 1.00000) { vec4 sampleValue = texture(DiffuseSampler, texCoord + oneTexel * r * BlurDir); totalAlpha = totalAlpha + sampleValue.a; totalSamples = totalSamples + 1.00000; float strength = 1.00000 - abs(r / Radius); totalStrength = totalStrength + strength; blurred = blurred + sampleValue; } fragColor = vec4(blurred.rgb / (Radius * 2.00000 + 1.00000), totalAlpha); } New VGPU Shader conversion: #version 320 es #ifdef GL_OES_texture_storage_multisample_2d_array #extension GL_OES_texture_storage_multisample_2d_array : enable #endif #ifdef GL_EXT_texture_buffer #extension GL_EXT_texture_buffer : enable #endif #ifdef GL_EXT_texture_cube_map_array #extension GL_EXT_texture_cube_map_array : enable #endif #ifdef GL_EXT_shader_non_constant_global_initializers #extension GL_EXT_shader_non_constant_global_initializers : enable #endif precision highp float; precision lowp image2D; precision lowp image2DArray; precision lowp image3D; precision lowp imageCube; precision lowp sampler2D; precision lowp sampler3D; precision lowp sampler2DShadow; precision lowp samplerCubeShadow; precision lowp sampler2DArray; precision lowp sampler2DArrayShadow; precision lowp samplerCube; #ifdef GL_EXT_texture_buffer precision lowp samplerBuffer; precision lowp imageBuffer; #endif #ifdef GL_EXT_texture_cube_map_array precision lowp imageCubeArray; precision lowp samplerCubeArray; precision lowp samplerCubeArrayShadow; #endif #ifdef GL_OES_texture_storage_multisample_2d_array precision lowp sampler2DMS; precision lowp sampler2DMSArray; #endif uniform sampler2D DiffuseSampler; in vec2 texCoord; in vec2 oneTexel; uniform vec2 InSize; uniform vec2 BlurDir; uniform float Radius; out vec4 fragColor; void main() { vec4 blurred = vec4(0.00000); float totalStrength = 0.00000; float totalAlpha = 0.00000; float totalSamples = 0.00000; for(float r = -Radius; r <= Radius; r += 1.00000) { vec4 sampleValue = texture(DiffuseSampler, texCoord + oneTexel * r * BlurDir); totalAlpha = totalAlpha + sampleValue.a; totalSamples = totalSamples + 1.00000; float strength = 1.00000 - abs(r / Radius); totalStrength = totalStrength + strength; blurred = blurred + sampleValue; } fragColor = vec4(blurred.rgb / (Radius * 2.00000 + 1.00000), totalAlpha); } version string: 150New VGPU Shader source: #version 320 es #define texture2D texture #define attribute in #define varying out precision highp float; precision highp int; in vec4 Position; uniform mat4 ProjMat; uniform vec2 OutSize; out vec2 texCoord; void main(){ vec4 outPos = ProjMat * vec4(Position.xy, 0.00000, 1.00000); gl_Position = vec4(outPos.xy, 0.200000, 1.00000); texCoord = Position.xy / OutSize; } New VGPU Shader conversion: #version 320 es #ifdef GL_OES_texture_storage_multisample_2d_array #extension GL_OES_texture_storage_multisample_2d_array : enable #endif #ifdef GL_EXT_texture_buffer #extension GL_EXT_texture_buffer : enable #endif #ifdef GL_EXT_texture_cube_map_array #extension GL_EXT_texture_cube_map_array : enable #endif #ifdef GL_EXT_shader_non_constant_global_initializers #extension GL_EXT_shader_non_constant_global_initializers : enable #endif precision highp float; precision lowp image2D; precision lowp image2DArray; precision lowp image3D; precision lowp imageCube; precision lowp sampler2D; precision lowp sampler3D; precision lowp sampler2DShadow; precision lowp samplerCubeShadow; precision lowp sampler2DArray; precision lowp sampler2DArrayShadow; precision lowp samplerCube; #ifdef GL_EXT_texture_buffer precision lowp samplerBuffer; precision lowp imageBuffer; #endif #ifdef GL_EXT_texture_cube_map_array precision lowp imageCubeArray; precision lowp samplerCubeArray; precision lowp samplerCubeArrayShadow; #endif #ifdef GL_OES_texture_storage_multisample_2d_array precision lowp sampler2DMS; precision lowp sampler2DMSArray; #endif in vec4 Position; uniform mat4 ProjMat; uniform vec2 OutSize; out vec2 texCoord; void main(){ vec4 outPos = ProjMat * vec4(Position.xy, 0.00000, 1.00000); gl_Position = vec4(outPos.xy, 0.200000, 1.00000); texCoord = Position.xy / OutSize; } version string: 150New VGPU Shader source: #version 320 es #define texture2D texture #define attribute in #define varying out precision highp float; precision highp int; uniform sampler2D DiffuseSampler; uniform vec4 ColorModulate; in vec2 texCoord; out vec4 fragColor; void main(){ fragColor = texture(DiffuseSampler, texCoord) * ColorModulate; } New VGPU Shader conversion: #version 320 es #ifdef GL_OES_texture_storage_multisample_2d_array #extension GL_OES_texture_storage_multisample_2d_array : enable #endif #ifdef GL_EXT_texture_buffer #extension GL_EXT_texture_buffer : enable #endif #ifdef GL_EXT_texture_cube_map_array #extension GL_EXT_texture_cube_map_array : enable #endif #ifdef GL_EXT_shader_non_constant_global_initializers #extension GL_EXT_shader_non_constant_global_initializers : enable #endif precision highp float; precision lowp image2D; precision lowp image2DArray; precision lowp image3D; precision lowp imageCube; precision lowp sampler2D; precision lowp sampler3D; precision lowp sampler2DShadow; precision lowp samplerCubeShadow; precision lowp sampler2DArray; precision lowp sampler2DArrayShadow; precision lowp samplerCube; #ifdef GL_EXT_texture_buffer precision lowp samplerBuffer; precision lowp imageBuffer; #endif #ifdef GL_EXT_texture_cube_map_array precision lowp imageCubeArray; precision lowp samplerCubeArray; precision lowp samplerCubeArrayShadow; #endif #ifdef GL_OES_texture_storage_multisample_2d_array precision lowp sampler2DMS; precision lowp sampler2DMSArray; #endif uniform sampler2D DiffuseSampler; uniform vec4 ColorModulate; in vec2 texCoord; out vec4 fragColor; void main(){ fragColor = texture(DiffuseSampler, texCoord) * ColorModulate; } [17:40:32] [Render thread/INFO]: Created: 256x256x0 minecraft:textures/atlas/particles.png-atlas [17:40:32] [Render thread/INFO]: Created: 256x256x0 minecraft:textures/atlas/paintings.png-atlas [17:40:32] [Render thread/INFO]: Created: 128x128x0 minecraft:textures/atlas/mob_effects.png-atlas [17:40:32] [Render thread/INFO]: Created: 1024x512x0 minecraft:textures/atlas/gui.png-atlas [17:40:36] [Render thread/INFO]: Stopping! EGLBridge: Terminating I/NativeInput(25588): Input ready: 0