volviewer

Volumetric Data Toy Viewer
git clone anongit@rnpnr.xyz:volviewer.git
Log | Files | Refs | Feed | LICENSE

Commit: b7d5d9608e1a0e91b8e037c5253ed1350d7b63d0
Parent: 8aeba1450218830aadfd7b9d08841e02b957561d
Author: Randy Palamar
Date:   Mon, 26 May 2025 21:28:58 -0600

swizzle texture_coordinate in vertex shader instead of fragment

Diffstat:
Mcommon.c | 6++++--
Mrender_model.frag.glsl | 5++---
2 files changed, 6 insertions(+), 5 deletions(-)

diff --git a/common.c b/common.c @@ -408,6 +408,7 @@ init_viewer(ViewerContext *ctx) "layout(location = " str(MODEL_RENDER_VIEW_MATRIX_LOC) ") uniform mat4 u_view;\n" "layout(location = " str(MODEL_RENDER_PROJ_MATRIX_LOC) ") uniform mat4 u_projection;\n" "layout(location = " str(MODEL_RENDER_CLIP_FRACTION_LOC) ") uniform float u_clip_fraction = 1;\n" + "layout(location = " str(MODEL_RENDER_SWIZZLE_LOC) ") uniform bool u_swizzle;\n" "\n" "\n" "void main()\n" @@ -415,7 +416,8 @@ init_viewer(ViewerContext *ctx) "\tvec3 pos = v_position;\n" "\tf_orig_texture_coordinate = (v_position + 1) / 2;\n" "\tif (v_position.y == -1) pos.x = clamp(v_position.x, -u_clip_fraction, u_clip_fraction);\n" - "\tf_texture_coordinate = (pos + 1) / 2;\n" + "\tvec3 tex_coord = (pos + 1) / 2;\n" + "\tf_texture_coordinate = u_swizzle? tex_coord.xzy : tex_coord;\n" //"\tf_normal = normalize(mat3(u_model) * v_normal);\n" "\tf_normal = v_normal;\n" "\tgl_Position = u_projection * u_view * u_model * vec4(pos, 1);\n" @@ -433,7 +435,7 @@ init_viewer(ViewerContext *ctx) "layout(location = " str(MODEL_RENDER_LOG_SCALE_LOC) ") uniform bool u_log_scale;\n" "layout(location = " str(MODEL_RENDER_BB_COLOUR_LOC) ") uniform vec4 u_bb_colour = vec4(" str(BOUNDING_BOX_COLOUR) ");\n" "layout(location = " str(MODEL_RENDER_BB_FRACTION_LOC) ") uniform float u_bb_fraction = " str(BOUNDING_BOX_FRACTION) ";\n" - "layout(location = " str(MODEL_RENDER_SWIZZLE_LOC) ") uniform bool u_swizzle;\n\n" + "\n" "layout(binding = 0) uniform sampler3D u_texture;\n" "\n#line 1\n"); diff --git a/render_model.frag.glsl b/render_model.frag.glsl @@ -20,8 +20,7 @@ bool bounding_box_test(vec3 coord, float p) void main() { - vec3 tex_coord = u_swizzle? texture_coordinate.xzy : texture_coordinate; - float smp = length(texture(u_texture, tex_coord).xy); + float smp = length(texture(u_texture, texture_coordinate).xy); float threshold_val = pow(10.0f, u_threshold / 20.0f); smp = clamp(smp, 0.0f, threshold_val); smp = smp / threshold_val; @@ -39,7 +38,7 @@ void main() out_colour = vec4(smp, smp, smp, 1); } - //out_colour = vec4(textureQueryLod(u_texture, tex_coord).y, 0, 0, 1); + //out_colour = vec4(textureQueryLod(u_texture, texture_coordinate).y, 0, 0, 1); //out_colour = vec4(abs(normal), 1); //out_colour = vec4(1, 1, 1, smp); //out_colour = vec4(smp * abs(normal), 1);