This commit is contained in:
2026-04-08 13:47:43 -05:00
parent 9035f6c3ae
commit f7f487bb9c
2 changed files with 77 additions and 43 deletions

View File

@@ -53,7 +53,7 @@ void Rubiks::onLoad() {
ImGui::SetCurrentContext(im->aquireContext()); ImGui::SetCurrentContext(im->aquireContext());
window->getRenderer()->clearColor = { 0.2, 0.2, 0.4, 0.7 }; window->getRenderer()->clearColor = { 0, 0, 0, 1.0f };
cubeShader = Archimedes::Shader(cubeVS, cubeFS, Archimedes::Shader::LoadType::FromSource); cubeShader = Archimedes::Shader(cubeVS, cubeFS, Archimedes::Shader::LoadType::FromSource);

View File

@@ -54,10 +54,14 @@ class Rubiks : public Archimedes::Module {
"uniform mat4 view;\n" "uniform mat4 view;\n"
"uniform mat4 proj;\n" "uniform mat4 proj;\n"
"uniform vec4 color;\n" "uniform vec4 color;\n"
"uniform float amblight;\n"
"void main()\n" "void main()\n"
"{\n" "{\n"
" FragColor = color;\n" " vec3 light = vec3(1.0f, 1.0f, 1.0f);\n"
" vec3 amblight = 0.1f * light;\n"
" vec3 norm = normalize(Norm);\n"
" vec3 lightdir = normalize(vec3(20, 20, 20) - FragPos);\n"
" vec3 diff = max(dot(norm, lightdir), 0.0) * light;\n"
" FragColor = vec4((amblight + diff) * color.rgb, 1.0f);\n"
"}\n\0"; "}\n\0";
Archimedes::Shader cubeShader; Archimedes::Shader cubeShader;
@@ -70,67 +74,97 @@ class Rubiks : public Archimedes::Module {
Archimedes::Camera camera; Archimedes::Camera camera;
std::vector<float> vertices = { std::vector<float> vertices = {
-0.5f, -0.5f, 0.5f, -0.5f, -0.5f, -0.5f, 0.0f, 0.0f, -1.0f,
0.5f, -0.5f, 0.5f, 0.5f, -0.5f, -0.5f, 0.0f, 0.0f, -1.0f,
0.5f, 0.5f, 0.5f, 0.5f, 0.5f, -0.5f, 0.0f, 0.0f, -1.0f,
-0.5f, 0.5f, 0.5f, 0.5f, 0.5f, -0.5f, 0.0f, 0.0f, -1.0f,
-0.5f, 0.5f, -0.5f, 0.0f, 0.0f, -1.0f,
-0.5f, -0.5f, -0.5f, 0.0f, 0.0f, -1.0f,
-0.5f, -0.5f, 0.5f, 0.0f, 0.0f, 1.0f,
0.5f, -0.5f, 0.5f, 0.0f, 0.0f, 1.0f,
0.5f, 0.5f, 0.5f, 0.0f, 0.0f, 1.0f,
0.5f, 0.5f, 0.5f, 0.0f, 0.0f, 1.0f,
-0.5f, 0.5f, 0.5f, 0.0f, 0.0f, 1.0f,
-0.5f, -0.5f, 0.5f, 0.0f, 0.0f, 1.0f,
-0.5f, -0.5f, -0.5f, -0.5f, 0.5f, 0.5f, -1.0f, 0.0f, 0.0f,
0.5f, -0.5f, -0.5f, -0.5f, 0.5f, -0.5f, -1.0f, 0.0f, 0.0f,
0.5f, 0.5f, -0.5f, -0.5f, -0.5f, -0.5f, -1.0f, 0.0f, 0.0f,
-0.5f, 0.5f, -0.5f, -0.5f, -0.5f, -0.5f, -1.0f, 0.0f, 0.0f,
-0.5f, -0.5f, 0.5f, -1.0f, 0.0f, 0.0f,
-0.5f, 0.5f, 0.5f, -1.0f, 0.0f, 0.0f,
}; 0.5f, 0.5f, 0.5f, 1.0f, 0.0f, 0.0f,
0.5f, 0.5f, -0.5f, 1.0f, 0.0f, 0.0f,
0.5f, -0.5f, -0.5f, 1.0f, 0.0f, 0.0f,
0.5f, -0.5f, -0.5f, 1.0f, 0.0f, 0.0f,
0.5f, -0.5f, 0.5f, 1.0f, 0.0f, 0.0f,
0.5f, 0.5f, 0.5f, 1.0f, 0.0f, 0.0f,
-0.5f, -0.5f, -0.5f, 0.0f, -1.0f, 0.0f,
0.5f, -0.5f, -0.5f, 0.0f, -1.0f, 0.0f,
0.5f, -0.5f, 0.5f, 0.0f, -1.0f, 0.0f,
0.5f, -0.5f, 0.5f, 0.0f, -1.0f, 0.0f,
-0.5f, -0.5f, 0.5f, 0.0f, -1.0f, 0.0f,
-0.5f, -0.5f, -0.5f, 0.0f, -1.0f, 0.0f,
-0.5f, 0.5f, -0.5f, 0.0f, 1.0f, 0.0f,
0.5f, 0.5f, -0.5f, 0.0f, 1.0f, 0.0f,
0.5f, 0.5f, 0.5f, 0.0f, 1.0f, 0.0f,
0.5f, 0.5f, 0.5f, 0.0f, 1.0f, 0.0f,
-0.5f, 0.5f, 0.5f, 0.0f, 1.0f, 0.0f,
-0.5f, 0.5f, -0.5f, 0.0f, 1.0f, 0.0f
};
std::vector<unsigned int> indices = { std::vector<unsigned int> indices = {
0, 0,
1, 1,
2, 2,
2,
3, 3,
0,
4, 4,
5, 5,
6,
6, 6,
7, 7,
4, 8,
9,
10,
11,
0, 12,
1, 13,
5, 14,
5, 15,
4, 16,
0, 17,
3, 18,
2, 19,
6, 20,
6, 21,
7, 22,
3, 23,
0, 24,
3, 25,
7, 26,
7, 27,
4, 28,
0, 29,
1, 30,
2, 31,
6, 32,
6, 33,
5, 34,
1, 35,
}; };