mirror of
https://github.com/TheRedShip/RT_GPU.git
synced 2025-09-27 10:48:34 +02:00
+ | Texture working finally !
This commit is contained in:
@ -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;
|
||||
|
@ -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);
|
||||
}
|
||||
|
||||
|
@ -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);
|
||||
}
|
||||
|
Reference in New Issue
Block a user