Added mip selection using ray differentials
This commit is contained in:
@@ -68,14 +68,27 @@ typedef struct
|
||||
uint16_t id;
|
||||
} texture_handle_t;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
vec3s view_direction;
|
||||
vec3s normal;
|
||||
vec3s edge1;
|
||||
vec3s edge2;
|
||||
vec2s uv1;
|
||||
vec2s uv2;
|
||||
float ray_width;
|
||||
float distance;
|
||||
} texture_sample_context_t;
|
||||
|
||||
|
||||
bool texture_collection_init(uint16_t size, texture_collection_t* textures);
|
||||
void texture_collection_resize(texture_collection_t* textures, uint16_t size);
|
||||
void texture_collection_free(texture_collection_t* textures);
|
||||
|
||||
texture_handle_t texture_load(const char* filename, bool srgb, bool mipmap, stride_t stride, texture_collection_t* textures);
|
||||
vec4s texture_get_pixel(const texture_t* texture, vec2s uv, uint8_t lod);
|
||||
float texture_get_sample_lod(vec3s view_direction, vec3s normal, float distance);
|
||||
vec4s texture_sample(const texture_t* texture, vec2s uv, vec3s view_direction, vec3s normal, float distance);
|
||||
float texture_get_sample_lod(const texture_t* texture, const texture_sample_context_t* sample_context);
|
||||
vec4s texture_sample(const texture_t* texture, const texture_sample_context_t* sample_context, vec2s uv);
|
||||
vec4s texture_sample_lod(const texture_t* texture, vec2s uv, float lod);
|
||||
void texture_free(texture_t* texture);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user