From 695cc2fb80b526946be98fa2c522e7acad4d7935 Mon Sep 17 00:00:00 2001 From: Samuel Wilder Date: Wed, 2 Oct 2019 15:32:16 -0400 Subject: [PATCH] Add fog example --- examples/shaders/fog.py | 94 ++++++++++++++++++ .../shaders/resources/shaders/fogLight.fs | 91 +++++++++++++++++ .../shaders/resources/shaders/fogLight.vs | 32 ++++++ examples/shaders/resources/test.png | Bin 0 -> 57153 bytes 4 files changed, 217 insertions(+) create mode 100644 examples/shaders/fog.py create mode 100644 examples/shaders/resources/shaders/fogLight.fs create mode 100644 examples/shaders/resources/shaders/fogLight.vs create mode 100644 examples/shaders/resources/test.png diff --git a/examples/shaders/fog.py b/examples/shaders/fog.py new file mode 100644 index 0000000..3cc18b1 --- /dev/null +++ b/examples/shaders/fog.py @@ -0,0 +1,94 @@ +""" +Example converted to Python from: +http://bedroomcoders.co.uk/raylib-fog/ +""" + +from raylib.dynamic import raylib as rl, ffi +from raylib.colors import * + +rl.SetConfigFlags(rl.FLAG_MSAA_4X_HINT | rl.FLAG_WINDOW_RESIZABLE) +rl.InitWindow(1280, 768, b'Fog Test') + +camera = ffi.new('struct Camera3D *', [ + [2, 2, 6], + [0, 5, 0], + [0, 1, 0], + 45, + rl.CAMERA_PERSPECTIVE +]) + +model = rl.LoadModelFromMesh(rl.GenMeshTorus(0.4, 1, 16, 32)) +model2 = rl.LoadModelFromMesh(rl.GenMeshCube(1, 1, 1)) +model3 = rl.LoadModelFromMesh(rl.GenMeshSphere(0.5, 32, 32)) + +texture = rl.LoadTexture(b'resources/test.png') + +model.materials[0].maps[rl.MAP_DIFFUSE].texture = texture +model2.materials[0].maps[rl.MAP_DIFFUSE].texture = texture +model3.materials[0].maps[rl.MAP_DIFFUSE].texture = texture + +shader = rl.LoadShader(b'resources/shaders/fogLight.vs', b'resources/shaders/fogLight.fs') +shader.locs[rl.LOC_MATRIX_MODEL] = rl.GetShaderLocation(shader, b'matModel') +shader.locs[rl.LOC_VECTOR_VIEW] = rl.GetShaderLocation(shader, b'viewPos') + +amb = rl.GetShaderLocation(shader, b'ambient') +rl.SetShaderValue(shader, amb, ffi.new('float[]', [0.2, 0.2, 0.2, 1.0]), rl.UNIFORM_VEC4) + +fog_color = [0.2, 0.2, 1.0, 1.0] +fogC = rl.GetShaderLocation(shader, b'fogColor') +rl.SetShaderValue(shader, fogC, ffi.new('float[]', fog_color), rl.UNIFORM_VEC4) + +fogD = rl.GetShaderLocation(shader, b'FogDensity') +fogDensity = 0.12 +rl.SetShaderValue(shader, fogD, ffi.new('float[]', [fogDensity]), rl.UNIFORM_FLOAT) + + +model.materials[0].shader = shader +model2.materials[0].shader = shader +model3.materials[0].shader = shader + +rl.SetCameraMode(camera[0], rl.CAMERA_ORBITAL) +rl.SetTargetFPS(60) + +while not rl.WindowShouldClose(): + rl.UpdateCamera(camera) + + if rl.IsKeyDown(rl.KEY_UP): + fogDensity = min(fogDensity + 0.001, 1) + + if rl.IsKeyDown(rl.KEY_DOWN): + fogDensity = max(fogDensity - 0.001, 0) + + rl.SetShaderValue(shader, fogD, ffi.new('float[]', [fogDensity]), rl.UNIFORM_FLOAT) + + rl.SetShaderValue(shader, shader.locs[rl.LOC_VECTOR_VIEW], ffi.new('float[]', [camera.position.x]), rl.UNIFORM_VEC3) + + rl.BeginDrawing() + + rl.ClearBackground([int(255 * i) for i in fog_color]) + + rl.BeginMode3D(camera[0]) + rl.DrawModel(model, [0] * 3, 1, WHITE) + rl.DrawModel(model2, [-2.6, 0, 0], 1, WHITE) + rl.DrawModel(model3, [ 2.6, 0, 0], 1, WHITE) + + for i in range(-20, 20, 2): + rl.DrawModel(model, [i, 0, 2], 1, WHITE) + + + rl.DrawGizmo([1000, 1000, 1000]) + + rl.EndMode3D() + + rl.DrawFPS(10, 10) + rl.DrawText(f'Up/Down to change fog density: {fogDensity}'.encode('utf-8'), 10, 30, 20, WHITE) + + rl.EndDrawing() + + +rl.CloseWindow() +rl.UnloadModel(model) +rl.UnloadModel(model2) +rl.UnloadModel(model3) +rl.UnloadTexture(texture) +rl.UnloadShader(shader) diff --git a/examples/shaders/resources/shaders/fogLight.fs b/examples/shaders/resources/shaders/fogLight.fs new file mode 100644 index 0000000..652143c --- /dev/null +++ b/examples/shaders/resources/shaders/fogLight.fs @@ -0,0 +1,91 @@ +#version 330 + +// Input vertex attributes (from vertex shader) +in vec2 fragTexCoord; +in vec4 fragColor; +in vec3 fragPosition; +in vec3 fragNormal; + +// Input uniform values +uniform sampler2D texture0; +uniform vec4 colDiffuse; + +// Output fragment color +out vec4 finalColor; + +// NOTE: Add here your custom variables + +#define MAX_LIGHTS 4 +#define LIGHT_DIRECTIONAL 0 +#define LIGHT_POINT 1 + +struct MaterialProperty { + vec3 color; + int useSampler; + sampler2D sampler; +}; + +struct Light { + int enabled; + int type; + vec3 position; + vec3 target; + vec4 color; +}; + +// Input lighting values +uniform Light lights[MAX_LIGHTS]; +uniform vec4 ambient; +uniform vec3 viewPos; +uniform float FogDensity; +uniform vec4 fogColor; + +void main() +{ + // Texel color fetching from texture sampler + vec4 texelColor = texture(texture0, fragTexCoord); + vec3 lightDot = vec3(0.0); + vec3 normal = normalize(fragNormal); + vec3 viewD = normalize(viewPos - fragPosition); + vec3 specular = vec3(0.0); + + // NOTE: Implement here your fragment shader code + + for (int i = 0; i < MAX_LIGHTS; i++) + { + if (lights[i].enabled == 1) + { + vec3 light = vec3(0.0); + if (lights[i].type == LIGHT_DIRECTIONAL) { + light = -normalize(lights[i].target - lights[i].position); + } + if (lights[i].type == LIGHT_POINT) { + light = normalize(lights[i].position - fragPosition); + } + float NdotL = max(dot(normal, light), 0.0); + lightDot += lights[i].color.rgb * NdotL; + + float specCo = 0.0; + if(NdotL > 0.0) + specCo = pow(max(0.0, dot(viewD, reflect(-(light), normal))), 16);//16 =shine + specular += specCo; + + } + } + + finalColor = (texelColor * ((colDiffuse+vec4(specular,1)) * vec4(lightDot, 1.0))); + finalColor += texelColor * (ambient/10.0); + // gamma + finalColor = pow(finalColor, vec4(1.0/2.2)); + + float dist = length(viewPos - fragPosition) ; + float fogFactor = 1.0 / exp( (dist * FogDensity) * (dist * FogDensity)); + + // linear less nice + //const float fogStart = 2.0; + //const float fogEnd = 10.0; + //float fogFactor = (fogEnd - dist)/(fogEnd - fogStart); + + fogFactor = clamp( fogFactor, 0.0, 1.0 ); + finalColor = mix(fogColor, finalColor, fogFactor); +} diff --git a/examples/shaders/resources/shaders/fogLight.vs b/examples/shaders/resources/shaders/fogLight.vs new file mode 100644 index 0000000..00779cf --- /dev/null +++ b/examples/shaders/resources/shaders/fogLight.vs @@ -0,0 +1,32 @@ +#version 330 + +// Input vertex attributes +in vec3 vertexPosition; +in vec2 vertexTexCoord; +in vec3 vertexNormal; +in vec4 vertexColor; + +// Input uniform values +uniform mat4 mvp; +uniform mat4 matModel; + +// Output vertex attributes (to fragment shader) +out vec2 fragTexCoord; +out vec4 fragColor; +out vec3 fragPosition; +out vec3 fragNormal; + +// NOTE: Add here your custom variables + +void main() +{ + // Send vertex attributes to fragment shader + fragTexCoord = vertexTexCoord; + fragColor = vertexColor; + fragPosition = vec3(matModel*vec4(vertexPosition, 1.0f)); + mat3 normalMatrix = transpose(inverse(mat3(matModel))); + fragNormal = normalize(normalMatrix*vertexNormal); + + // Calculate final vertex position + gl_Position = mvp*vec4(vertexPosition, 1.0); +} diff --git a/examples/shaders/resources/test.png b/examples/shaders/resources/test.png new file mode 100644 index 0000000000000000000000000000000000000000..0e03e3ed62fb9d709042775395996d8370ffbc0a GIT binary patch literal 57153 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
2JKMK z)u$MKyPd-Bq9{}A4QJ#x#w*iywLO$!N&A{GRBI6kH(;l``XvVu7H$}amq{(^<|_m{ z2GUooDxukY*T)72D{M9z*9NW+R+Qb%0PfG%fy|E%cpqXHdf9(e-L%H+mwZMD-IbcX zEsgNAQAX#fQir4r9k&yL@~5?rpk*Z3WSDbR8rG8cQ!n)Y3?vai z8u;FzT{C34qq~xo$Y2Btej#enpFFRW_dw=`FuBZw4mqc>yKacid|w(Gj@Z4W#vcP# zt7obMQbV$RG^esJxLtOBG_Z&Tu_46S{CJQvw~|=u$AAaTiebC^xrXm&1it&V@dX_2 zG(oEW;EUVD=#P)@)%?Is-^5@Gw3z1x-kgfsRp8GmPr0~4xKmn_&jhQ`reoGKLO%OR zl5XOtwh6(5-9|ywb*n-d@CPj|N1{Q}hwC2GnhfT%rCK?(?@ekEex97EkDJmnJ$m#} z{Otu3aWWV6dn=uh=4bn?+k}u1rNuz?K$LlK-SYLE%+lM^k0J>QkA09LPFgn@Zau=x zHt}e_S(P7tT%^W-vmM<$5*{Be>ior(ZUhFrj}G{VIY64>5_PalZ8}YmZvpqc=7Uc3 zau#QA^dn7W{p{i4ZnwqI`)*@y`wk61+#SdEC#JmR0)zLY_r3Rm7cYOxv$)i6L2Nap zWpj>QF#6|fF^WfJ{yG+#jGOD<5 z=E@}~6I!%!7!~#>m4Ar#{n`3}d7bkaY78uvl*s^bawn9Q@Lc_x`aqR>7#ebUI1Ocz zcX5fIf}`JB7fxw!X%OY_DTKx~H$N!5#c_FMN}l-9f+cx{DJ`VIhW>GSjN(Pi4FgSU zrI)VsXKZ6R-{<2|pzMCxmt3zO=f;1Pad_r>o%n2-9%S`J$DB2ZUAZ~@$JyE1=E$wh#8Nj?>-W8iKcvt+*i? zHr1<vdBU_3gt|kNa7Pd82JW`NGy6{JK4NG*$cd5~M`;qXk7TclVka zh>B`^heF_fl_hKP;r_7>#-5uuS_^g<5>P7=aVx&_eXsLU&-1E}>25i;{~&k6NonJR zSSTOu(_mM~Gil5^m?n`U4{9e*Ab_VlPD8H?f3c>cUXA{zmA?iBJ5-BNg#)NCP{SSq6y zgPl6+Y&3JI_G_scPUxX?i=?^i55>w2`u-c0v(IBJ zDNjtSvr8-a3`neoQWj!+1K5bvuPC29jSL3Pa3bPS_0RNB9Id7`$rZHf_69?{jb_!h zl?(1Ocl+=05QKM{Xy^HIM45C!~Xct>1lUC zf!vC}A{`j(v=Kkk^3#dQh9!G_a?X#^-uFCpjEzSs48I2)Z|547$R_Ahi4*yvRZ*NP zz9mm+)Rw)mBzWp3v=}yrPUH}#|xXhZE!u|05AVaSYBA_jW z+sB7k0+#DGH$KZ;eU@KK=3A}_<4U08=FN@M3uE^|1t>QolGfrZ*}DpuZ(yPFkp-NZ zNUnkg@in-pl}p0J|t_ch*3>`dOr)lBTPqG}W-O1Us#PN&a5ff$|2iI!3~QHmL| zs4h-nU{q~&u}$zv^kQ?%@25{TqnIsmiyTb_B^$fh283)uFu6w5EmI!*%T_L(JAB3f zmJxD0gGG!Q9B4pTq-C7CIY1XxV1+t0ST{Zi`2MHB_yL2M^y|YzTE| z&>qIXpYrZT8%OYI_uA)~BGCv+5zs-`&iLd!cGj+oH7yn{0q?(Q70-b*S09LB6nu@_FT!UtD7biW}n8$;cd7j9%YEMl2t- zEvC*I67;&MZxQ*UWw4