+ | Texture working finally !

This commit is contained in:
TheRedShip
2025-01-28 23:08:37 +01:00
parent 23f2a9a5c6
commit c59a9c037f
10 changed files with 142175 additions and 1300 deletions

View File

@ -150,8 +150,10 @@ struct hitInfo
float last_t;
vec3 normal;
vec3 position;
int obj_index;
int mat_index;
int obj_type;
float u;
float v;

View File

@ -105,9 +105,16 @@ uniform sampler2D textures[32];
vec3 getTextureColor(int texture_index, hitInfo hit)
{
GPUTriangle tri = triangles[hit.obj_index];
vec2 uv = hit.u * tri.texture_vertex2 + hit.v * tri.texture_vertex3 + (1 - (hit.u + hit.v)) * tri.texture_vertex1;
vec2 uv = vec2(0.0);
if (hit.obj_type == 0)
uv = getSphereUV(hit.normal);
else if (hit.obj_type == 3)
{
GPUTriangle tri = triangles[hit.obj_index];
uv = hit.u * tri.texture_vertex2 + hit.v * tri.texture_vertex3 + (1 - (hit.u + hit.v)) * tri.texture_vertex1;
}
return (texture(textures[texture_index], uv).rgb);
}

View File

@ -45,6 +45,7 @@ hitInfo traceScene(Ray ray)
hit.t = temp_hit.t;
hit.last_t = temp_hit.last_t;
hit.obj_index = i;
hit.obj_type = obj.type;
hit.mat_index = obj.mat_index;
hit.position = temp_hit.position;
hit.normal = temp_hit.normal;
@ -152,6 +153,7 @@ hitInfo traverseBVHs(Ray ray)
hit.last_t = temp_hit.last_t / bvh_data.scale;
hit.obj_index = temp_hit.obj_index;
hit.mat_index = temp_hit.mat_index;
hit.obj_type = 3;
hit.position = inverseTransformMatrix * temp_hit.position + bvh_data.offset;
hit.normal = normalize(inverseTransformMatrix * temp_hit.normal);
}