EXAMPLE: models_skybox works on OpenGL ES 2.0
This commit is contained in:
parent
79d63e6ca1
commit
b5d50ee51a
6 changed files with 22 additions and 58 deletions
|
@ -1,12 +1,6 @@
|
|||
/*******************************************************************************************
|
||||
*
|
||||
* rPBR [shader] - Equirectangular to cubemap fragment shader
|
||||
*
|
||||
* Copyright (c) 2017 Victor Fisac
|
||||
*
|
||||
**********************************************************************************************/
|
||||
#version 100
|
||||
|
||||
#version 330
|
||||
precision mediump float;
|
||||
|
||||
// Input vertex attributes (from vertex shader)
|
||||
varying vec3 fragPosition;
|
||||
|
@ -28,7 +22,7 @@ void main()
|
|||
vec2 uv = SampleSphericalMap(normalize(fragPosition));
|
||||
|
||||
// Fetch color from texture map
|
||||
vec3 color = texture(equirectangularMap, uv).rgb;
|
||||
vec3 color = texture2D(equirectangularMap, uv).rgb;
|
||||
|
||||
// Calculate final fragment color
|
||||
gl_FragColor = vec4(color, 1.0);
|
||||
|
|
|
@ -1,12 +1,4 @@
|
|||
/*******************************************************************************************
|
||||
*
|
||||
* rPBR [shader] - Equirectangular to cubemap vertex shader
|
||||
*
|
||||
* Copyright (c) 2017 Victor Fisac
|
||||
*
|
||||
**********************************************************************************************/
|
||||
|
||||
#version 330
|
||||
#version 100
|
||||
|
||||
// Input vertex attributes
|
||||
attribute vec3 vertexPosition;
|
||||
|
|
|
@ -1,14 +1,6 @@
|
|||
/*******************************************************************************************
|
||||
*
|
||||
* rPBR [shader] - Background skybox fragment shader
|
||||
*
|
||||
* Copyright (c) 2017 Victor Fisac
|
||||
*
|
||||
* 19-Jun-2020 - modified by Giuseppe Mastrangelo (@peppemas) - VFlip Support
|
||||
*
|
||||
**********************************************************************************************/
|
||||
#version 100
|
||||
|
||||
#version 110
|
||||
precision mediump float;
|
||||
|
||||
// Input vertex attributes (from vertex shader)
|
||||
varying vec3 fragPosition;
|
||||
|
@ -20,11 +12,13 @@ uniform bool vflipped;
|
|||
void main()
|
||||
{
|
||||
// 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;
|
||||
else color = texture2D(environmentMap, fragPosition).rgb;
|
||||
if (vflipped) texelColor = textureCube(environmentMap, vec3(fragPosition.x, -fragPosition.y, fragPosition.z));
|
||||
else texelColor = textureCube(environmentMap, fragPosition);
|
||||
|
||||
vec3 color = vec3(texelColor.x, texelColor.y, texelColor.z);
|
||||
|
||||
// Apply gamma correction
|
||||
color = color/(color + vec3(1.0));
|
||||
color = pow(color, vec3(1.0/2.2));
|
||||
|
|
|
@ -1,22 +1,14 @@
|
|||
/*******************************************************************************************
|
||||
*
|
||||
* rPBR [shader] - Background skybox vertex shader
|
||||
*
|
||||
* Copyright (c) 2017 Victor Fisac
|
||||
*
|
||||
**********************************************************************************************/
|
||||
|
||||
#version 330
|
||||
#version 100
|
||||
|
||||
// Input vertex attributes
|
||||
in vec3 vertexPosition;
|
||||
attribute vec3 vertexPosition;
|
||||
|
||||
// Input uniform values
|
||||
uniform mat4 projection;
|
||||
uniform mat4 view;
|
||||
|
||||
// Output vertex attributes (to fragment shader)
|
||||
out vec3 fragPosition;
|
||||
varying vec3 fragPosition;
|
||||
|
||||
void main()
|
||||
{
|
||||
|
@ -28,5 +20,5 @@ void main()
|
|||
vec4 clipPos = projection*rotView*vec4(vertexPosition, 1.0);
|
||||
|
||||
// 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
|
||||
|
||||
// Input vertex attributes (from vertex shader)
|
||||
|
|
14
src/rlgl.h
14
src/rlgl.h
|
@ -2065,20 +2065,20 @@ unsigned int rlLoadTexture(void *data, int width, int height, int format, int mi
|
|||
unsigned int rlLoadTextureDepth(int width, int height, bool useRenderBuffer)
|
||||
{
|
||||
unsigned int id = 0;
|
||||
|
||||
|
||||
#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
|
||||
unsigned int glInternalFormat = GL_DEPTH_COMPONENT;
|
||||
/*
|
||||
#if defined(GRAPHICS_API_OPENGL_33)
|
||||
glInternalFormat = GL_DEPTH_COMPONENT24; // GL_DEPTH_COMPONENT32
|
||||
#elif defined(GRAPHICS_API_OPENGL_ES2)
|
||||
|
||||
#if defined(GRAPHICS_API_OPENGL_ES2)
|
||||
if (RLGL.ExtSupported.maxDepthBits == 32) glInternalFormat = GL_DEPTH_COMPONENT32_OES;
|
||||
else if (RLGL.ExtSupported.maxDepthBits == 24) glInternalFormat = GL_DEPTH_COMPONENT24_OES;
|
||||
else glInternalFormat = GL_DEPTH_COMPONENT16;
|
||||
#endif
|
||||
*/
|
||||
|
||||
if (!useRenderBuffer && RLGL.ExtSupported.texDepth)
|
||||
{
|
||||
glGenTextures(1, &id);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue