mirror of
https://github.com/raysan5/raylib.git
synced 2025-09-21 18:58:14 +00:00
EXAMPLE: models_skybox works on OpenGL ES 2.0
This commit is contained in:
@@ -1,12 +1,6 @@
|
|||||||
/*******************************************************************************************
|
#version 100
|
||||||
*
|
|
||||||
* rPBR [shader] - Equirectangular to cubemap fragment shader
|
|
||||||
*
|
|
||||||
* Copyright (c) 2017 Victor Fisac
|
|
||||||
*
|
|
||||||
**********************************************************************************************/
|
|
||||||
|
|
||||||
#version 330
|
precision mediump float;
|
||||||
|
|
||||||
// Input vertex attributes (from vertex shader)
|
// Input vertex attributes (from vertex shader)
|
||||||
varying vec3 fragPosition;
|
varying vec3 fragPosition;
|
||||||
@@ -28,7 +22,7 @@ void main()
|
|||||||
vec2 uv = SampleSphericalMap(normalize(fragPosition));
|
vec2 uv = SampleSphericalMap(normalize(fragPosition));
|
||||||
|
|
||||||
// Fetch color from texture map
|
// Fetch color from texture map
|
||||||
vec3 color = texture(equirectangularMap, uv).rgb;
|
vec3 color = texture2D(equirectangularMap, uv).rgb;
|
||||||
|
|
||||||
// Calculate final fragment color
|
// Calculate final fragment color
|
||||||
gl_FragColor = vec4(color, 1.0);
|
gl_FragColor = vec4(color, 1.0);
|
||||||
|
@@ -1,12 +1,4 @@
|
|||||||
/*******************************************************************************************
|
#version 100
|
||||||
*
|
|
||||||
* rPBR [shader] - Equirectangular to cubemap vertex shader
|
|
||||||
*
|
|
||||||
* Copyright (c) 2017 Victor Fisac
|
|
||||||
*
|
|
||||||
**********************************************************************************************/
|
|
||||||
|
|
||||||
#version 330
|
|
||||||
|
|
||||||
// Input vertex attributes
|
// Input vertex attributes
|
||||||
attribute vec3 vertexPosition;
|
attribute vec3 vertexPosition;
|
||||||
|
@@ -1,14 +1,6 @@
|
|||||||
/*******************************************************************************************
|
#version 100
|
||||||
*
|
|
||||||
* rPBR [shader] - Background skybox fragment shader
|
|
||||||
*
|
|
||||||
* Copyright (c) 2017 Victor Fisac
|
|
||||||
*
|
|
||||||
* 19-Jun-2020 - modified by Giuseppe Mastrangelo (@peppemas) - VFlip Support
|
|
||||||
*
|
|
||||||
**********************************************************************************************/
|
|
||||||
|
|
||||||
#version 110
|
precision mediump float;
|
||||||
|
|
||||||
// Input vertex attributes (from vertex shader)
|
// Input vertex attributes (from vertex shader)
|
||||||
varying vec3 fragPosition;
|
varying vec3 fragPosition;
|
||||||
@@ -20,10 +12,12 @@ uniform bool vflipped;
|
|||||||
void main()
|
void main()
|
||||||
{
|
{
|
||||||
// Fetch color from texture map
|
// Fetch color from texture map
|
||||||
vec3 color = { 0.0 };
|
vec4 texelColor = vec4(0.0);
|
||||||
|
|
||||||
if (vflipped) color = texture2D(environmentMap, vec3(fragPosition.x, -fragPosition.y, fragPosition.z)).rgb;
|
if (vflipped) texelColor = textureCube(environmentMap, vec3(fragPosition.x, -fragPosition.y, fragPosition.z));
|
||||||
else color = texture2D(environmentMap, fragPosition).rgb;
|
else texelColor = textureCube(environmentMap, fragPosition);
|
||||||
|
|
||||||
|
vec3 color = vec3(texelColor.x, texelColor.y, texelColor.z);
|
||||||
|
|
||||||
// Apply gamma correction
|
// Apply gamma correction
|
||||||
color = color/(color + vec3(1.0));
|
color = color/(color + vec3(1.0));
|
||||||
|
@@ -1,22 +1,14 @@
|
|||||||
/*******************************************************************************************
|
#version 100
|
||||||
*
|
|
||||||
* rPBR [shader] - Background skybox vertex shader
|
|
||||||
*
|
|
||||||
* Copyright (c) 2017 Victor Fisac
|
|
||||||
*
|
|
||||||
**********************************************************************************************/
|
|
||||||
|
|
||||||
#version 330
|
|
||||||
|
|
||||||
// Input vertex attributes
|
// Input vertex attributes
|
||||||
in vec3 vertexPosition;
|
attribute vec3 vertexPosition;
|
||||||
|
|
||||||
// Input uniform values
|
// Input uniform values
|
||||||
uniform mat4 projection;
|
uniform mat4 projection;
|
||||||
uniform mat4 view;
|
uniform mat4 view;
|
||||||
|
|
||||||
// Output vertex attributes (to fragment shader)
|
// Output vertex attributes (to fragment shader)
|
||||||
out vec3 fragPosition;
|
varying vec3 fragPosition;
|
||||||
|
|
||||||
void main()
|
void main()
|
||||||
{
|
{
|
||||||
@@ -28,5 +20,5 @@ void main()
|
|||||||
vec4 clipPos = projection*rotView*vec4(vertexPosition, 1.0);
|
vec4 clipPos = projection*rotView*vec4(vertexPosition, 1.0);
|
||||||
|
|
||||||
// Calculate final vertex position
|
// Calculate final vertex position
|
||||||
gl_Position = clipPos.xyww;
|
gl_Position = clipPos.xyzw;
|
||||||
}
|
}
|
||||||
|
@@ -1,11 +1,3 @@
|
|||||||
/*******************************************************************************************
|
|
||||||
*
|
|
||||||
* rPBR [shader] - Equirectangular to cubemap fragment shader
|
|
||||||
*
|
|
||||||
* Copyright (c) 2017 Victor Fisac
|
|
||||||
*
|
|
||||||
**********************************************************************************************/
|
|
||||||
|
|
||||||
#version 330
|
#version 330
|
||||||
|
|
||||||
// Input vertex attributes (from vertex shader)
|
// Input vertex attributes (from vertex shader)
|
||||||
|
12
src/rlgl.h
12
src/rlgl.h
@@ -2067,18 +2067,18 @@ unsigned int rlLoadTextureDepth(int width, int height, bool useRenderBuffer)
|
|||||||
unsigned int id = 0;
|
unsigned int id = 0;
|
||||||
|
|
||||||
#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2)
|
#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2)
|
||||||
if (!RLGL.ExtSupported.texDepth) useRenderBuffer = false;
|
// In case depth textures not supported, we force renderbuffer usage
|
||||||
|
if (!RLGL.ExtSupported.texDepth) useRenderBuffer = true;
|
||||||
|
|
||||||
// NOTE: We let the implementation to choose the best bit-depth
|
// NOTE: We let the implementation to choose the best bit-depth
|
||||||
unsigned int glInternalFormat = GL_DEPTH_COMPONENT;
|
unsigned int glInternalFormat = GL_DEPTH_COMPONENT;
|
||||||
/*
|
|
||||||
#if defined(GRAPHICS_API_OPENGL_33)
|
#if defined(GRAPHICS_API_OPENGL_ES2)
|
||||||
glInternalFormat = GL_DEPTH_COMPONENT24; // GL_DEPTH_COMPONENT32
|
|
||||||
#elif defined(GRAPHICS_API_OPENGL_ES2)
|
|
||||||
if (RLGL.ExtSupported.maxDepthBits == 32) glInternalFormat = GL_DEPTH_COMPONENT32_OES;
|
if (RLGL.ExtSupported.maxDepthBits == 32) glInternalFormat = GL_DEPTH_COMPONENT32_OES;
|
||||||
else if (RLGL.ExtSupported.maxDepthBits == 24) glInternalFormat = GL_DEPTH_COMPONENT24_OES;
|
else if (RLGL.ExtSupported.maxDepthBits == 24) glInternalFormat = GL_DEPTH_COMPONENT24_OES;
|
||||||
|
else glInternalFormat = GL_DEPTH_COMPONENT16;
|
||||||
#endif
|
#endif
|
||||||
*/
|
|
||||||
if (!useRenderBuffer && RLGL.ExtSupported.texDepth)
|
if (!useRenderBuffer && RLGL.ExtSupported.texDepth)
|
||||||
{
|
{
|
||||||
glGenTextures(1, &id);
|
glGenTextures(1, &id);
|
||||||
|
Reference in New Issue
Block a user