Skip to content

Commit d7b174c

Browse files
author
ShreyasPC-GF63
committed
04-03-2025: Sorted shaders. updated Particle system and added ComputerShader loader.
1 parent 6519b4a commit d7b174c

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

42 files changed

+476
-208
lines changed

OpenGL/OpenGL.vcxproj

+29-27
Original file line numberDiff line numberDiff line change
@@ -102,15 +102,16 @@
102102
<None Include="res\objects\porsche\skyline_GTR.cob" />
103103
<None Include="res\objects\spider\spider.mtl" />
104104
<None Include="res\objects\wb\WhiteBeard.mtl" />
105-
<None Include="res\shaders\3DtexFS.glsl" />
106-
<None Include="res\shaders\3DtexVS.glsl" />
107-
<None Include="res\shaders\BasicShaderFS.shader" />
108-
<None Include="res\shaders\BasicShaderVS.shader" />
109-
<None Include="res\shaders\BatchShader.shader" />
110-
<None Include="res\shaders\CubrWithLightFS.shader" />
111-
<None Include="res\shaders\CubrWithLightVS.shader" />
112-
<None Include="res\shaders\CubrWithTexFS.shader" />
113-
<None Include="res\shaders\CubrWithTexVS.shader" />
105+
<None Include="res\shaders\Pyramid\3DtexFS.glsl" />
106+
<None Include="res\shaders\Pyramid\3DtexVS.glsl" />
107+
<None Include="res\shaders\Basic\BasicShaderFS.glsl" />
108+
<None Include="res\shaders\Basic\BasicShaderVS.glsl" />
109+
<None Include="res\shaders\Basic\BatchShader.shader" />
110+
<None Include="res\shaders\compute.comp" />
111+
<None Include="res\shaders\Cube\CubeWithLightFS.glsl" />
112+
<None Include="res\shaders\Cube\CubeWithLightVS.glsl" />
113+
<None Include="res\shaders\Cube\CubeWithTexFS.glsl" />
114+
<None Include="res\shaders\Cube\CubeWithTexVS.glsl" />
114115
<None Include="res\shaders\FBMShader.shader" />
115116
<None Include="res\shaders\FBM\FragShaderFBM.glsl" />
116117
<None Include="res\shaders\FBM\VertexFBMShader.glsl" />
@@ -122,26 +123,26 @@
122123
<None Include="res\shaders\Heightmap\heightmapVS.glsl" />
123124
<None Include="res\shaders\infiniteGrid\InfiPlaneFragmentShader.glsl" />
124125
<None Include="res\shaders\infiniteGrid\InfiPlaneVertexShader.glsl" />
125-
<None Include="res\shaders\lightCubeFS.shader" />
126-
<None Include="res\shaders\lightCubeVS.shader" />
127-
<None Include="res\shaders\LightSphere\GS.shader" />
128-
<None Include="res\shaders\LightSphere\lightSphereFS.shader" />
129-
<None Include="res\shaders\LightSphere\lightSphereVS.shader" />
126+
<None Include="res\shaders\Cube\lightCubeFS.glsl" />
127+
<None Include="res\shaders\Cube\lightCubeVS.glsl" />
128+
<None Include="res\shaders\LightSphere\GS.glsl" />
129+
<None Include="res\shaders\LightSphere\lightSphereFS.glsl" />
130+
<None Include="res\shaders\LightSphere\lightSphereVS.glsl" />
130131
<None Include="res\shaders\LoadModel\modelFragmentShader.glsl" />
131132
<None Include="res\shaders\LoadModel\modelVertexShader.glsl" />
132-
<None Include="res\shaders\LightSphere\TCS.shader" />
133-
<None Include="res\shaders\LightSphere\TES.shader" />
133+
<None Include="res\shaders\LightSphere\TCS.glsl" />
134+
<None Include="res\shaders\LightSphere\TES.glsl" />
134135
<None Include="res\shaders\LoadModel\NormalFS.glsl" />
135136
<None Include="res\shaders\LoadModel\NormalGS.glsl" />
136137
<None Include="res\shaders\LoadModel\NormalVS.glsl" />
137138
<None Include="res\shaders\ParticleSysCPU\fragmentShader.glsl" />
138139
<None Include="res\shaders\ParticleSysCPU\vertexShader.glsl" />
139-
<None Include="res\shaders\QuadShaderFS.shader" />
140-
<None Include="res\shaders\QuadShaderVS.shader" />
141-
<None Include="res\shaders\shader_glsl.frag" />
142-
<None Include="res\shaders\shader_glsl.vert" />
143-
<None Include="res\shaders\TextureShaderFS.shader" />
144-
<None Include="res\shaders\TextureShaderVS.shader" />
140+
<None Include="res\shaders\Basic\QuadShaderFS.glsl" />
141+
<None Include="res\shaders\Basic\QuadShaderVS.glsl" />
142+
<None Include="res\shaders\Basic\shader_glsl.frag" />
143+
<None Include="res\shaders\Basic\shader_glsl.vert" />
144+
<None Include="res\shaders\Basic\TextureShaderFS.glsl" />
145+
<None Include="res\shaders\Basic\TextureShaderVS.glsl" />
145146
<None Include="src\vendor\glm\detail\func_common.inl" />
146147
<None Include="src\vendor\glm\detail\func_common_simd.inl" />
147148
<None Include="src\vendor\glm\detail\func_exponential.inl" />
@@ -372,19 +373,19 @@
372373
<Image Include="res\objects\spider\wal69ar_small.jpg" />
373374
<Image Include="res\objects\wb\body_texture.png" />
374375
<Image Include="res\objects\wb\cloak_texture.png" />
375-
<Image Include="res\textures\conatiner\Brick.jpg" />
376+
<Image Include="res\textures\container\Brick.jpg" />
376377
<Image Include="res\textures\height\ashleyNP_heightmap.png" />
377-
<Image Include="res\textures\conatiner\container2.png" />
378-
<Image Include="res\textures\conatiner\container2_emissionMap.png" />
379-
<Image Include="res\textures\conatiner\container2_specular.png" />
378+
<Image Include="res\textures\container\container2.png" />
379+
<Image Include="res\textures\container\container2_emissionMap.png" />
380+
<Image Include="res\textures\container\container2_specular.png" />
380381
<Image Include="res\textures\height\deccan_heightmap.png" />
381382
<Image Include="res\textures\height\gc2_heightmap.png" />
382383
<Image Include="res\textures\height\gc_heightmap.png" />
383384
<Image Include="res\textures\height\himalay_heightmap.png" />
384385
<Image Include="res\textures\height\iceland_heightmap.png" />
385386
<Image Include="res\textures\height\iraklio_heightmap.png" />
386387
<Image Include="res\textures\height\japan_heightmap.png" />
387-
<Image Include="res\textures\conatiner\matrix.jpg" />
388+
<Image Include="res\textures\container\matrix.jpg" />
388389
<Image Include="res\textures\height\northIndia_heightmap.png" />
389390
<Image Include="res\textures\height\sa_heightmap.png" />
390391
<Image Include="res\textures\skybox\bsw\back.jpg" />
@@ -459,6 +460,7 @@
459460
<ClInclude Include="Core\Timestep.h" />
460461
<ClInclude Include="src\Camera.h" />
461462
<ClInclude Include="src\CameraController.h" />
463+
<ClInclude Include="src\ComputeShader.h" />
462464
<ClInclude Include="src\IndexBuffer.h" />
463465
<ClInclude Include="src\Mesh.h" />
464466
<ClInclude Include="src\Model.h" />

OpenGL/OpenGL.vcxproj.filters

+31-27
Original file line numberDiff line numberDiff line change
@@ -15,34 +15,34 @@
1515
</Filter>
1616
</ItemGroup>
1717
<ItemGroup>
18-
<None Include="res\shaders\BasicShaderVS.shader" />
19-
<None Include="res\shaders\TextureShaderVS.shader" />
20-
<None Include="res\shaders\QuadShaderVS.shader" />
21-
<None Include="res\shaders\BatchShader.shader" />
22-
<None Include="res\shaders\lightCubeVS.shader" />
18+
<None Include="res\shaders\Basic\BasicShaderVS.glsl" />
19+
<None Include="res\shaders\Basic\TextureShaderVS.glsl" />
20+
<None Include="res\shaders\Basic\QuadShaderVS.glsl" />
21+
<None Include="res\shaders\Basic\BatchShader.shader" />
22+
<None Include="res\shaders\Cube\lightCubeVS.glsl" />
2323
<None Include="res\shaders\FBMShader.shader" />
24-
<None Include="res\shaders\CubrWithLightVS.shader" />
25-
<None Include="res\shaders\lightCubeFS.shader" />
26-
<None Include="res\shaders\CubrWithLightFS.shader" />
27-
<None Include="res\shaders\QuadShaderFS.shader" />
28-
<None Include="res\shaders\TextureShaderFS.shader" />
29-
<None Include="res\shaders\BasicShaderFS.shader" />
30-
<None Include="res\shaders\CubrWithTexVS.shader" />
31-
<None Include="res\shaders\CubrWithTexFS.shader" />
24+
<None Include="res\shaders\Cube\CubeWithLightVS.glsl" />
25+
<None Include="res\shaders\Cube\lightCubeFS.glsl" />
26+
<None Include="res\shaders\Cube\CubeWithLightFS.glsl" />
27+
<None Include="res\shaders\Basic\QuadShaderFS.glsl" />
28+
<None Include="res\shaders\Basic\TextureShaderFS.glsl" />
29+
<None Include="res\shaders\Basic\BasicShaderFS.glsl" />
30+
<None Include="res\shaders\Cube\CubeWithTexVS.glsl" />
31+
<None Include="res\shaders\Cube\CubeWithTexFS.glsl" />
3232
<None Include="res\shaders\FBM\VertexFBMShader.glsl" />
3333
<None Include="res\shaders\FBM\FragShaderFBM.glsl" />
34-
<None Include="res\shaders\LightSphere\lightSphereFS.shader" />
35-
<None Include="res\shaders\LightSphere\lightSphereVS.shader" />
36-
<None Include="res\shaders\LightSphere\TCS.shader" />
37-
<None Include="res\shaders\LightSphere\TES.shader" />
38-
<None Include="res\shaders\LightSphere\GS.shader" />
34+
<None Include="res\shaders\LightSphere\lightSphereFS.glsl" />
35+
<None Include="res\shaders\LightSphere\lightSphereVS.glsl" />
36+
<None Include="res\shaders\LightSphere\TCS.glsl" />
37+
<None Include="res\shaders\LightSphere\TES.glsl" />
38+
<None Include="res\shaders\LightSphere\GS.glsl" />
3939
<None Include="res\shaders\Heightmap\heightmapVS.glsl" />
4040
<None Include="res\shaders\Heightmap\heightmapFS.glsl" />
4141
<None Include="res\shaders\Heightmap\heightmapTCS.glsl" />
4242
<None Include="res\shaders\Heightmap\heightmapTES.glsl" />
4343
<None Include="res\shaders\Heightmap\heightmapGS.glsl" />
44-
<None Include="res\shaders\3DtexFS.glsl" />
45-
<None Include="res\shaders\3DtexVS.glsl" />
44+
<None Include="res\shaders\Pyramid\3DtexFS.glsl" />
45+
<None Include="res\shaders\Pyramid\3DtexVS.glsl" />
4646
<None Include="imgui.ini" />
4747
<None Include="src\vendor\glm\gtx\associated_min_max.inl">
4848
<Filter>Header Files</Filter>
@@ -453,8 +453,8 @@
453453
<Filter>Header Files</Filter>
454454
</None>
455455
<None Include="res\objects\backpack\backpack.mtl" />
456-
<None Include="res\shaders\shader_glsl.vert" />
457-
<None Include="res\shaders\shader_glsl.frag" />
456+
<None Include="res\shaders\Basic\shader_glsl.vert" />
457+
<None Include="res\shaders\Basic\shader_glsl.frag" />
458458
<None Include="res\objects\GoingMerry\GoingMerry.mb" />
459459
<None Include="res\objects\GoingMerry\GoingMerry.mtl" />
460460
<None Include="res\objects\ClassicFormula1\cf1car.3ds" />
@@ -489,21 +489,22 @@
489489
<None Include="res\shaders\infiniteGrid\InfiPlaneVertexShader.glsl" />
490490
<None Include="res\shaders\ParticleSysCPU\vertexShader.glsl" />
491491
<None Include="res\shaders\ParticleSysCPU\fragmentShader.glsl" />
492+
<None Include="res\shaders\compute.comp" />
492493
</ItemGroup>
493494
<ItemGroup>
494495
<Image Include="res\textures\SSanW2.png">
495496
<Filter>Resource Files</Filter>
496497
</Image>
497-
<Image Include="res\textures\conatiner\container2.png">
498+
<Image Include="res\textures\container\container2.png">
498499
<Filter>Resource Files</Filter>
499500
</Image>
500-
<Image Include="res\textures\conatiner\container2_specular.png">
501+
<Image Include="res\textures\container\container2_specular.png">
501502
<Filter>Resource Files</Filter>
502503
</Image>
503-
<Image Include="res\textures\conatiner\matrix.jpg">
504+
<Image Include="res\textures\container\matrix.jpg">
504505
<Filter>Resource Files</Filter>
505506
</Image>
506-
<Image Include="res\textures\conatiner\container2_emissionMap.png">
507+
<Image Include="res\textures\container\container2_emissionMap.png">
507508
<Filter>Resource Files</Filter>
508509
</Image>
509510
<Image Include="res\textures\height\iceland_heightmap.png">
@@ -587,7 +588,7 @@
587588
<Image Include="res\textures\skybox\interstellar\left.tga" />
588589
<Image Include="res\textures\skybox\interstellar\right.tga" />
589590
<Image Include="res\textures\skybox\interstellar\top.tga" />
590-
<Image Include="res\textures\conatiner\Brick.jpg">
591+
<Image Include="res\textures\container\Brick.jpg">
591592
<Filter>Resource Files</Filter>
592593
</Image>
593594
<Image Include="res\objects\backpack\ao.jpg">
@@ -1955,5 +1956,8 @@
19551956
<ClInclude Include="src\Particle.h">
19561957
<Filter>Header Files</Filter>
19571958
</ClInclude>
1959+
<ClInclude Include="src\ComputeShader.h">
1960+
<Filter>Header Files</Filter>
1961+
</ClInclude>
19581962
</ItemGroup>
19591963
</Project>

OpenGL/imgui.ini

+1-1
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ Size=407,252
99
Collapsed=0
1010

1111
[Window][Test]
12-
ViewportPos=1490,164
12+
ViewportPos=1501,168
1313
ViewportId=0x5185664B
1414
Size=400,506
1515
Collapsed=0

OpenGL/res/shaders/CubrWithTexFS.shader renamed to OpenGL/res/shaders/Cube/CubeWithTexFS.glsl

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
//CubrWithTexFS.shader
1+
//CubeWithTexFS.shader
22
#version 330 core
33
out vec4 FragColor;
44

OpenGL/res/shaders/CubrWithTexVS.shader renamed to OpenGL/res/shaders/Cube/CubeWithTexVS.glsl

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
//CubrWithTexVS.shader
1+
//CubeWithTexVS.shader
22
#version 330 core
33
layout (location = 0) in vec3 aPos;
44
layout (location = 1) in vec3 aNormal;

OpenGL/res/shaders/compute.comp

+64
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
#version 430 core
2+
layout (std140, binding = 1) buffer Pos
3+
{
4+
vec4 Positions[];
5+
};
6+
7+
layout (std140, binding = 2) buffer Vel
8+
{
9+
vec4 Velocities[];
10+
};
11+
12+
layout (std140, binding = 3) buffer Col
13+
{
14+
vec4 Colors[];
15+
};
16+
17+
layout(local_size_x = 256, local_size_y = 1, local_size_z = 1) in;
18+
19+
const vec3 G = vec3(3.0f, -2.0f, 3.f);
20+
const float DT = 0.1;
21+
22+
const vec4 colorBegin = vec4(1.0, 1.0, 1.0, 1.0);
23+
const vec4 colorMid1 = vec4(1.0, 0.8, 0.0, 1.0);
24+
const vec4 colorMid2 = vec4(1.0, 0.2, 0.0, 1.0);
25+
const vec4 colorEnd = vec4(1.0, 0.2, 0.0, 1.0);
26+
27+
// Uniforms
28+
uniform float deltaTime;
29+
uniform vec3 globalForce; // Gravity force
30+
uniform float emissionRate; // Particles per second
31+
uniform vec3 emitterPosition;
32+
uniform float accumulatedTime; // Emitter accumulated time
33+
34+
void main()
35+
{
36+
uint index = gl_GlobalInvocationID.x;
37+
vec3 p = Positions[index].xyz;
38+
vec3 v = Velocities[index].xyz;
39+
vec3 pp = p + v*deltaTime ;
40+
//vec3 vp = v + G*deltaTime;
41+
Positions[index].xyz = pp;
42+
//Velocities[index].xyz = vp;
43+
44+
float lifeRemaining = Positions[index].w - deltaTime;
45+
float lifeSpan = Velocities[index].w;
46+
Positions[index].w = lifeRemaining;
47+
float life = lifeRemaining / lifeSpan;
48+
if (life > 0.5)
49+
{
50+
float factor = (life - 0.6) / 0.3;
51+
Colors[index] = mix(colorBegin, colorMid1, 1.0f - factor);
52+
}
53+
else if (life > 0.3)
54+
{
55+
float factor = (life - 0.3) / 0.4;
56+
Colors[index] = mix(colorMid1, colorMid2, 1.0 - factor);
57+
}
58+
else
59+
{
60+
float factor = life / 0.3;
61+
Colors[index] = mix(colorMid2, colorEnd, 1.0 - factor);
62+
}
63+
Colors[index].a *= life;
64+
}

0 commit comments

Comments
 (0)