- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我很抱歉,但这需要一些解释。我试图让它尽可能简单。
我想做什么:
我正在可视化高度场。一个高度字段可能有多个补丁。补丁是改变高度场的较小纹理。
我正在使用 OpenGL 4.0,主要是曲面分割着色器。然而,对于这个问题,这应该无关紧要。
什么已经在起作用了。
我有高度场(没有补丁)的可视化工作。与问题有关的有趣部分是曲面分割评估着色器和片段着色器。
镶嵌评估着色器 从高度场采样器中获取每个顶点的高度。
layout(quads, fractional_odd_spacing, ccw) in;
out float onEdge;
out float teDistanceToMinHeight;
out vec4 tcPosition;
void main()
{
// bilinear interpolate: position
vec4 pos_a = mix(gl_in[0].gl_Position, gl_in[1].gl_Position, gl_TessCoord.x);
vec4 pos_b = mix(gl_in[3].gl_Position, gl_in[2].gl_Position, gl_TessCoord.x);
vec4 position = mix(pos_a, pos_b, gl_TessCoord.y);
// bilinear interpolate: hf texture coordinate
vec2 tex_a = mix(gl_in[0].gl_TexCoord[HFTexCoordID].xy, gl_in[1].gl_TexCoord[HFTexCoordID].xy, gl_TessCoord.x);
vec2 tex_b = mix(gl_in[3].gl_TexCoord[HFTexCoordID].xy, gl_in[2].gl_TexCoord[HFTexCoordID].xy, gl_TessCoord.x);
vec2 hfTexCoord = mix(tex_a, tex_b, gl_TessCoord.y);
float height = getHeightFieldHeight(hfTexCoord);
position.y = height;
//position.y = getHeightFieldHeightMin();
gl_Position = gl_ModelViewProjectionMatrix * position;
tcPosition = gl_Position;
gl_TexCoord[HFTexCoordID].xy = hfTexCoord;
// a vertex is on the edge of a patch if one of the tess coords is 0
onEdge = float((gl_TessCoord.x == 0 || gl_TessCoord.y == 0));
teDistanceToMinHeight = height - getHeightFieldHeightMin();
}
in float onEdge;
in float teDistanceToMinHeight;
in vec4 tcPosition;
out vec4 FragColor;
vec3
getHeightMapGradient(in vec2 ts_position,
in vec2 texel_offset)
{
vec3 x = vec3(2.0 * texel_offset.x, 0.0, getHeightFieldHeight(ts_position + vec2(texel_offset.x, 0.0))
- getHeightFieldHeight(ts_position - vec2(texel_offset.x, 0.0)));
vec3 y = vec3(0.0, 2.0 * texel_offset.y, getHeightFieldHeight(ts_position + vec2(0.0, texel_offset.y))
- getHeightFieldHeight(ts_position - vec2(0.0, texel_offset.y)));
return cross(x, y);
}
void main()
{
if(teDistanceToMinHeight < 0.00001){
// filter points near the zero position
discard;
}
// attributes
vec2 hfTexCoords = gl_TexCoord[HFTexCoordID].xy;
//float hfPaletteTexCoord = getHeightFieldHeight(hfTexCoords) / HeightFieldHeight;
float hfPaletteTexCoord = (texture(HeightField, hfTexCoords).r -HeightFieldLowering);
vec2 heightMapSize = vec2(textureSize(HeightField, 0).xy);
vec2 heightMapTexelSize = vec2(1.0) / vec2(heightMapSize);
// some standard colors
vec4 white = vec4(1);
vec4 yellow = vec4(1,1,0,1);
vec4 blue = vec4(0,0,1,1);
// get the color
FragColor = texture(HeightFieldPalette, hfPaletteTexCoord ); // use height field palette as color
if(onEdge > 0.9 && ShowOriginalGrid == 1 ){
FragColor = mix(FragColor, yellow, 0.5);
}
// shading
vec3 n = normalize(getHeightMapGradient(hfTexCoords, heightMapTexelSize).xzy);
vec3 l = vec3(1,1,0);
vec3 v = normalize(CameraPosition - tcPosition.xyz);
vec3 h = normalize(l + v);
float df= dot(n, l);
FragColor = (FragColor * (df * 0.5 + 0.5)) // diffuse
+ vec4(1) * pow(max(0.0, dot(n,h)), 60.0) // specular
+ 0.1; // ambient
}
#version 400 compatibility
// defines
#define HFTexCoordID 0
// environment
uniform ivec2 ScreenSize = ivec2(800,600);
uniform vec3 CameraPosition = vec3(0);
// tesselation
uniform float MaxEdgeLength = 4;
// height field
uniform float HeightFieldHeight = 1;
uniform float HeightFieldLowering = 0.2;
uniform sampler2D HeightField;
uniform sampler1D HeightFieldPalette;
// density map
uniform sampler2D DensityMap;
// patches
uniform sampler2D[20] Patches;
uniform int PatchesCount = 0;
uniform ivec2[20] PatchesPositions;
uniform float[20] PatchesHeights;
uniform ivec2[20] PatchesSizes;
// show options
uniform int ShowOriginalGrid = 0;
// functions
ivec2 getHFPosition(vec2 hfTexCoords){
return ivec2(textureSize(HeightField, 0).xy * hfTexCoords);
}
ivec2 getPatchSize(in int patchIndex){
return PatchesSizes[patchIndex];
//return textureSize(Patches[patchIndex], 0).xy;
}
vec2 toPatchCoords(in int patchIndex, in vec2 hfTexCoords){
ivec2 hfPosition = getHFPosition(hfTexCoords);
ivec2 patchStart = PatchesPositions[patchIndex];
ivec2 patchPos = hfPosition - patchStart;
//return textureSize(Patches[1], 0).xy;
return vec2(patchPos / getPatchSize(patchIndex));
}
float getPatchHeight(in int patchIndex, in vec2 hfTexCoords){
vec2 patchCoords = toPatchCoords(patchIndex, hfTexCoords);
// seams like the combination of the for loop with this
// texture access results in undefined behavior.
float relHeight = (texture(Patches[patchIndex], patchCoords).r -0.5);
return relHeight * PatchesHeights[patchIndex] * HeightFieldHeight;
}
float getPatchedHeight(in vec2 texCoords){
float patchesHeight = 0;
// working
//patchesHeight += getPatchHeight(0, texCoords);
//patchesHeight += getPatchHeight(1, texCoords);
//patchesHeight += getPatchHeight(2, texCoords);
// only works for i < 5 .
for(int i = 0; i < 6 && i < PatchesCount-1; i++){
patchesHeight += getPatchHeight(i, texCoords);
}
return patchesHeight;
}
float getHeightFieldHeight(in vec2 textureCoordinates){
float height = (texture(HeightField, textureCoordinates).r -HeightFieldLowering) * HeightFieldHeight;
height += getPatchedHeight(textureCoordinates);
return height;
}
float getHeightFieldHeightMin(){
return (-0.2 * HeightFieldHeight);
}
float getDensity(in vec2 coords){
return texture(DensityMap, coords).r;
}
uniform sampler2D[20] Patches;
Visualization Lib
rary v2011.5.1142 [f32]
Jun 9 2011 - 11:36:25 - GCC compiler [RELEASE] [x32]
--- Environment ---
VL_LOGFILE_PATH <not present>
VL_DATA_PATH <not present>
VL_VERBOSITY_LEVEL = NORMAL
VL_CHECK_GL_STATES = YES
--- Global Settings ---
Log file = log.txt
Data path = ../data
Verbosity level = NORMAL
Check OpenGL States = YES
--- GLEW ---
GLEW version: 1.5.7
--- OpenGL Info ---
OpenGL version: 4.1.0 NVIDIA 260.19.21
OpenGL vendor: NVIDIA Corporation
OpenGL renderer: Quadro 6000/PCI/SSE2
OpenGL profile: Compatible
GLSL version: 4.10 NVIDIA via Cg compiler
Max texture size: 16384
Texture coords: 8
Texture conventional units: 4
Texture image units: 32
Anisotropic texture filter: YES, 16X
S3 Texture Compression: YES
Vertex Buffer Object: YES
Pixel Buffer Object: YES
Framebuffer Object: YES
Max vertex attributes: 16
Max varying floats: 60
Max fragment uniform components: 2048
Max vertex uniform components: 4096
Max elements vertices: 1048576
Max elements indices: 1048576
--- OpenGL Extensions ---
GL_ARB_blend_func_extended GL_ARB_color_buffer_float
GL_ARB_compatibility GL_ARB_copy_buffer
GL_ARB_depth_buffer_float GL_ARB_depth_clamp
GL_ARB_depth_texture GL_ARB_draw_buffers
GL_ARB_draw_buffers_blend GL_ARB_draw_indirect
GL_ARB_draw_elements_base_vertex GL_ARB_draw_instanced
GL_ARB_ES2_compatibility GL_ARB_explicit_attrib_location
GL_ARB_fragment_coord_conventions GL_ARB_fragment_program
GL_ARB_fragment_program_shadow GL_ARB_fragment_shader
GL_ARB_framebuffer_object GL_ARB_framebuffer_sRGB
GL_ARB_geometry_shader4 GL_ARB_get_program_binary
GL_ARB_gpu_shader5 GL_ARB_gpu_shader_fp64
GL_ARB_half_float_pixel GL_ARB_half_float_vertex
GL_ARB_imaging GL_ARB_instanced_arrays
GL_ARB_map_buffer_range GL_ARB_multisample
GL_ARB_multitexture GL_ARB_occlusion_query
GL_ARB_occlusion_query2 GL_ARB_pixel_buffer_object
GL_ARB_point_parameters GL_ARB_point_sprite
GL_ARB_provoking_vertex GL_ARB_robustness
GL_ARB_sample_shading GL_ARB_sampler_objects
GL_ARB_seamless_cube_map GL_ARB_separate_shader_objects
GL_ARB_shader_bit_encoding GL_ARB_shader_objects
GL_ARB_shader_precision GL_ARB_shader_subroutine
GL_ARB_shading_language_100 GL_ARB_shadow
GL_ARB_sync GL_ARB_tessellation_shader
GL_ARB_texture_border_clamp GL_ARB_texture_buffer_object
GL_ARB_texture_buffer_object_rgb32 GL_ARB_texture_compression
GL_ARB_texture_compression_bptc GL_ARB_texture_compression_rgtc
GL_ARB_texture_cube_map GL_ARB_texture_cube_map_array
GL_ARB_texture_env_add GL_ARB_texture_env_combine
GL_ARB_texture_env_crossbar GL_ARB_texture_env_dot3
GL_ARB_texture_float GL_ARB_texture_gather
GL_ARB_texture_mirrored_repeat GL_ARB_texture_multisample
GL_ARB_texture_non_power_of_two GL_ARB_texture_query_lod
GL_ARB_texture_rectangle GL_ARB_texture_rg
GL_ARB_texture_rgb10_a2ui GL_ARB_texture_swizzle
GL_ARB_timer_query GL_ARB_transform_feedback2
GL_ARB_transform_feedback3 GL_ARB_transpose_matrix
GL_ARB_uniform_buffer_object GL_ARB_vertex_array_bgra
GL_ARB_vertex_array_object GL_ARB_vertex_attrib_64bit
GL_ARB_vertex_buffer_object GL_ARB_vertex_program
GL_ARB_vertex_shader GL_ARB_vertex_type_2_10_10_10_rev
GL_ARB_viewport_array GL_ARB_window_pos
GL_ATI_draw_buffers GL_ATI_texture_float
GL_ATI_texture_mirror_once GL_S3_s3tc
GL_EXT_texture_env_add GL_EXT_abgr
GL_EXT_bgra GL_EXT_bindable_uniform
GL_EXT_blend_color GL_EXT_blend_equation_separate
GL_EXT_blend_func_separate GL_EXT_blend_minmax
GL_EXT_blend_subtract GL_EXT_compiled_vertex_array
GL_EXT_Cg_shader GL_EXT_depth_bounds_test
GL_EXT_direct_state_access GL_EXT_draw_buffers2
GL_EXT_draw_instanced GL_EXT_draw_range_elements
GL_EXT_fog_coord GL_EXT_framebuffer_blit
GL_EXT_framebuffer_multisample GL_EXTX_framebuffer_mixed_formats
GL_EXT_framebuffer_object GL_EXT_framebuffer_sRGB
GL_EXT_geometry_shader4 GL_EXT_gpu_program_parameters
GL_EXT_gpu_shader4 GL_EXT_multi_draw_arrays
GL_EXT_packed_depth_stencil GL_EXT_packed_float
GL_EXT_packed_pixels GL_EXT_pixel_buffer_object
GL_EXT_point_parameters GL_EXT_provoking_vertex
GL_EXT_rescale_normal GL_EXT_secondary_color
GL_EXT_separate_shader_objects GL_EXT_separate_specular_color
GL_EXT_shader_image_load_store GL_EXT_shadow_funcs
GL_EXT_stencil_two_side GL_EXT_stencil_wrap
GL_EXT_texture3D GL_EXT_texture_array
GL_EXT_texture_buffer_object GL_EXT_texture_compression_latc
GL_EXT_texture_compression_rgtc GL_EXT_texture_compression_s3tc
GL_EXT_texture_cube_map GL_EXT_texture_edge_clamp
GL_EXT_texture_env_combine GL_EXT_texture_env_dot3
GL_EXT_texture_filter_anisotropic GL_EXT_texture_integer
GL_EXT_texture_lod GL_EXT_texture_lod_bias
GL_EXT_texture_mirror_clamp GL_EXT_texture_object
GL_EXT_texture_shared_exponent GL_EXT_texture_sRGB
GL_EXT_texture_swizzle GL_EXT_timer_query
GL_EXT_transform_feedback2 GL_EXT_vertex_array
GL_EXT_vertex_array_bgra GL_EXT_vertex_attrib_64bit
GL_IBM_rasterpos_clip GL_IBM_texture_mirrored_repeat
GL_KTX_buffer_region GL_NV_blend_square
GL_NV_conditional_render GL_NV_copy_depth_to_color
GL_NV_copy_image GL_NV_depth_buffer_float
GL_NV_depth_clamp GL_NV_explicit_multisample
GL_NV_fence GL_NV_float_buffer
GL_NV_fog_distance GL_NV_fragment_program
GL_NV_fragment_program_option GL_NV_fragment_program2
GL_NV_framebuffer_multisample_coverage GL_NV_geometry_shader4
GL_NV_gpu_program4 GL_NV_gpu_program4_1
GL_NV_gpu_program5 GL_NV_gpu_program_fp64
GL_NV_gpu_shader5 GL_NV_half_float
GL_NV_light_max_exponent GL_NV_multisample_coverage
GL_NV_multisample_filter_hint GL_NV_occlusion_query
GL_NV_packed_depth_stencil GL_NV_parameter_buffer_object
GL_NV_parameter_buffer_object2 GL_NV_pixel_data_range
GL_NV_point_sprite GL_NV_primitive_restart
GL_NV_register_combiners GL_NV_register_combiners2
GL_NV_shader_buffer_load GL_NV_texgen_reflection
GL_NV_texture_barrier GL_NV_texture_compression_vtc
GL_NV_texture_env_combine4 GL_NV_texture_expand_normal
GL_NV_texture_multisample GL_NV_texture_rectangle
GL_NV_texture_shader GL_NV_texture_shader2
GL_NV_texture_shader3 GL_NV_transform_feedback
GL_NV_transform_feedback2 GL_NV_vdpau_interop
GL_NV_vertex_array_range GL_NV_vertex_array_range2
GL_NV_vertex_attrib_integer_64bit GL_NV_vertex_buffer_unified_memory
GL_NV_vertex_program GL_NV_vertex_program1_1
GL_NV_vertex_program2 GL_NV_vertex_program2_option
GL_NV_vertex_program3 GL_NV_video_capture
GL_NVX_conditional_render GL_NVX_gpu_memory_info
GL_SGIS_generate_mipmap GL_SGIS_texture_lod
GL_SGIX_depth_texture GL_SGIX_shadow
GL_SUN_slice_accum
--- GLEW ---
GLEW version: 1.5.7
--- OpenGL Info ---
OpenGL version: 4.1.0 NVIDIA 260.19.21
OpenGL vendor: NVIDIA Corporation
OpenGL renderer: Quadro 6000/PCI/SSE2
OpenGL profile: Compatible
GLSL version: 4.10 NVIDIA via Cg compiler
Max texture size: 16384
Texture coords: 8
Texture conventional units: 4
Texture image units: 32
Anisotropic texture filter: YES, 16X
S3 Texture Compression: YES
Vertex Buffer Object: YES
Pixel Buffer Object: YES
Framebuffer Object: YES
Max vertex attributes: 16
Max varying floats: 60
Max fragment uniform components: 2048
Max vertex uniform components: 4096
Max elements vertices: 1048576
Max elements indices: 1048576
--- OpenGL Extensions ---
GL_ARB_blend_func_extended GL_ARB_color_buffer_float
GL_ARB_compatibility GL_ARB_copy_buffer
GL_ARB_depth_buffer_float GL_ARB_depth_clamp
GL_ARB_depth_texture GL_ARB_draw_buffers
GL_ARB_draw_buffers_blend GL_ARB_draw_indirect
GL_ARB_draw_elements_base_vertex GL_ARB_draw_instanced
GL_ARB_ES2_compatibility GL_ARB_explicit_attrib_location
GL_ARB_fragment_coord_conventions GL_ARB_fragment_program
GL_ARB_fragment_program_shadow GL_ARB_fragment_shader
GL_ARB_framebuffer_object GL_ARB_framebuffer_sRGB
GL_ARB_geometry_shader4 GL_ARB_get_program_binary
GL_ARB_gpu_shader5 GL_ARB_gpu_shader_fp64
GL_ARB_half_float_pixel GL_ARB_half_float_vertex
GL_ARB_imaging GL_ARB_instanced_arrays
GL_ARB_map_buffer_range GL_ARB_multisample
GL_ARB_multitexture GL_ARB_occlusion_query
GL_ARB_occlusion_query2 GL_ARB_pixel_buffer_object
GL_ARB_point_parameters GL_ARB_point_sprite
GL_ARB_provoking_vertex GL_ARB_robustness
GL_ARB_sample_shading GL_ARB_sampler_objects
GL_ARB_seamless_cube_map GL_ARB_separate_shader_objects
GL_ARB_shader_bit_encoding GL_ARB_shader_objects
GL_ARB_shader_precision GL_ARB_shader_subroutine
GL_ARB_shading_language_100 GL_ARB_shadow
GL_ARB_sync GL_ARB_tessellation_shader
GL_ARB_texture_border_clamp GL_ARB_texture_buffer_object
GL_ARB_texture_buffer_object_rgb32 GL_ARB_texture_compression
GL_ARB_texture_compression_bptc GL_ARB_texture_compression_rgtc
GL_ARB_texture_cube_map GL_ARB_texture_cube_map_array
GL_ARB_texture_env_add GL_ARB_texture_env_combine
GL_ARB_texture_env_crossbar GL_ARB_texture_env_dot3
GL_ARB_texture_float GL_ARB_texture_gather
GL_ARB_texture_mirrored_repeat GL_ARB_texture_multisample
GL_ARB_texture_non_power_of_two GL_ARB_texture_query_lod
GL_ARB_texture_rectangle GL_ARB_texture_rg
GL_ARB_texture_rgb10_a2ui GL_ARB_texture_swizzle
GL_ARB_timer_query GL_ARB_transform_feedback2
GL_ARB_transform_feedback3 GL_ARB_transpose_matrix
GL_ARB_uniform_buffer_object GL_ARB_vertex_array_bgra
GL_ARB_vertex_array_object GL_ARB_vertex_attrib_64bit
GL_ARB_vertex_buffer_object GL_ARB_vertex_program
GL_ARB_vertex_shader GL_ARB_vertex_type_2_10_10_10_rev
GL_ARB_viewport_array GL_ARB_window_pos
GL_ATI_draw_buffers GL_ATI_texture_float
GL_ATI_texture_mirror_once GL_S3_s3tc
GL_EXT_texture_env_add GL_EXT_abgr
GL_EXT_bgra GL_EXT_bindable_uniform
GL_EXT_blend_color GL_EXT_blend_equation_separate
GL_EXT_blend_func_separate GL_EXT_blend_minmax
GL_EXT_blend_subtract GL_EXT_compiled_vertex_array
GL_EXT_Cg_shader GL_EXT_depth_bounds_test
GL_EXT_direct_state_access GL_EXT_draw_buffers2
GL_EXT_draw_instanced GL_EXT_draw_range_elements
GL_EXT_fog_coord GL_EXT_framebuffer_blit
GL_EXT_framebuffer_multisample GL_EXTX_framebuffer_mixed_formats
GL_EXT_framebuffer_object GL_EXT_framebuffer_sRGB
GL_EXT_geometry_shader4 GL_EXT_gpu_program_parameters
GL_EXT_gpu_shader4 GL_EXT_multi_draw_arrays
GL_EXT_packed_depth_stencil GL_EXT_packed_float
GL_EXT_packed_pixels GL_EXT_pixel_buffer_object
GL_EXT_point_parameters GL_EXT_provoking_vertex
GL_EXT_rescale_normal GL_EXT_secondary_color
GL_EXT_separate_shader_objects GL_EXT_separate_specular_color
GL_EXT_shader_image_load_store GL_EXT_shadow_funcs
GL_EXT_stencil_two_side GL_EXT_stencil_wrap
GL_EXT_texture3D GL_EXT_texture_array
GL_EXT_texture_buffer_object GL_EXT_texture_compression_latc
GL_EXT_texture_compression_rgtc GL_EXT_texture_compression_s3tc
GL_EXT_texture_cube_map GL_EXT_texture_edge_clamp
GL_EXT_texture_env_combine GL_EXT_texture_env_dot3
GL_EXT_texture_filter_anisotropic GL_EXT_texture_integer
GL_EXT_texture_lod GL_EXT_texture_lod_bias
GL_EXT_texture_mirror_clamp GL_EXT_texture_object
GL_EXT_texture_shared_exponent GL_EXT_texture_sRGB
GL_EXT_texture_swizzle GL_EXT_timer_query
GL_EXT_transform_feedback2 GL_EXT_vertex_array
GL_EXT_vertex_array_bgra GL_EXT_vertex_attrib_64bit
GL_IBM_rasterpos_clip GL_IBM_texture_mirrored_repeat
GL_KTX_buffer_region GL_NV_blend_square
GL_NV_conditional_render GL_NV_copy_depth_to_color
GL_NV_copy_image GL_NV_depth_buffer_float
GL_NV_depth_clamp GL_NV_explicit_multisample
GL_NV_fence GL_NV_float_buffer
GL_NV_fog_distance GL_NV_fragment_program
GL_NV_fragment_program_option GL_NV_fragment_program2
GL_NV_framebuffer_multisample_coverage GL_NV_geometry_shader4
GL_NV_gpu_program4 GL_NV_gpu_program4_1
GL_NV_gpu_program5 GL_NV_gpu_program_fp64
GL_NV_gpu_shader5 GL_NV_half_float
GL_NV_light_max_exponent GL_NV_multisample_coverage
GL_NV_multisample_filter_hint GL_NV_occlusion_query
GL_NV_packed_depth_stencil GL_NV_parameter_buffer_object
GL_NV_parameter_buffer_object2 GL_NV_pixel_data_range
GL_NV_point_sprite GL_NV_primitive_restart
GL_NV_register_combiners GL_NV_register_combiners2
GL_NV_shader_buffer_load GL_NV_texgen_reflection
GL_NV_texture_barrier GL_NV_texture_compression_vtc
GL_NV_texture_env_combine4 GL_NV_texture_expand_normal
GL_NV_texture_multisample GL_NV_texture_rectangle
GL_NV_texture_shader GL_NV_texture_shader2
GL_NV_texture_shader3 GL_NV_transform_feedback
GL_NV_transform_feedback2 GL_NV_vdpau_interop
GL_NV_vertex_array_range GL_NV_vertex_array_range2
GL_NV_vertex_attrib_integer_64bit GL_NV_vertex_buffer_unified_memory
GL_NV_vertex_program GL_NV_vertex_program1_1
GL_NV_vertex_program2 GL_NV_vertex_program2_option
GL_NV_vertex_program3 GL_NV_video_capture
GL_NVX_conditional_render GL_NVX_gpu_memory_info
GL_SGIS_generate_mipmap GL_SGIS_texture_lod
GL_SGIX_depth_texture GL_SGIX_shadow
GL_SUN_slice_accum
PatchesContainer::PatchesContainer: working dir: ./data/patches/pick_height_testing_png/
PatchesContainer::loadPatchesFromWorkingDir ignoring file = data/patches/pick_height_testing_png/.svn
Patch::initialize(): name = data/patches/pick_height_testing_png/patch01-position=20x20-maxHeight=1.0.png
width = 50
height = 50
depth = 0
format = IF_LUMINANCE
type = IT_UNSIGNED_BYTE
pitch = 50
bytealign = 1
Patch::initialize(): name = data/patches/pick_height_testing_png/patch02-position=20x2-maxHeight=1.5.png
width = 20
height = 20
depth = 0
format = IF_LUMINANCE
type = IT_UNSIGNED_BYTE
pitch = 20
bytealign = 1
Found matching densitymap ./data/density_maps/pick_height_testing_png.png
loading height field image
name = ./data/horizons/pick_height_testing.png
width = 200
height = 200
depth = 0
format = IF_LUMINANCE
type = IT_UNSIGNED_BYTE
pitch = 200
bytealign = 1
name = ./data/textures/tesselation_palette_blue_red.png
width = 300
height = 0
depth = 0
format = IF_RGB
type = IT_UNSIGNED_BYTE
pitch = 900
bytealign = 1
GL_MAX_TESS_EVALUATION_TEXTURE_IMAGE_UNITS: 32
最佳答案
好吧,我可以看到一个问题:
uniform sampler2D[20] Patches;
GL_MAX_TESS_EVALUATION_TEXTURE_IMAGE_UNITS
;我敢打赌是 16。
uniform
与关键字一样,但基于编译时常量或统一值的表达式。它们不能基于从纹理、着色器阶段输入或任何类型检索的值。
for(int i = 0; i < someUniform; i++)
{
texture(Patches[i], texCoord);
}
texture(Patches[positionOfSomeVertex * uniformScaleFactor], texCoord);
A fragment-shader expression is dynamically uniform if all fragments evaluating it get the same resulting value. When loops are involved, this refers to the expression's value for the same loop iteration. When functions are involved, this refers to calls from the same call point.
This is similarly defined for other shader stages, based on the per-instance data they process.
Note that constant expressions are trivially dynamically uniform. It follows that typical loop counters based on these are also dynamically uniform.
uniform
值,我应该能够将任何内容作为着色器阶段的输入传递,并且将从数组中访问相同的纹理。您的代码不保证这一点。
关于opengl - 使用统一的 sampler2d[] 时出现无法解释的行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6537887/
SQLite、Content provider 和 Shared Preference 之间的所有已知区别。 但我想知道什么时候需要根据情况使用 SQLite 或 Content Provider 或
警告:我正在使用一个我无法完全控制的后端,所以我正在努力解决 Backbone 中的一些注意事项,这些注意事项可能在其他地方更好地解决......不幸的是,我别无选择,只能在这里处理它们! 所以,我的
我一整天都在挣扎。我的预输入搜索表达式与远程 json 数据完美配合。但是当我尝试使用相同的 json 数据作为预取数据时,建议为空。点击第一个标志后,我收到预定义消息“无法找到任何内容...”,结果
我正在制作一个模拟 NHL 选秀彩票的程序,其中屏幕右侧应该有一个 JTextField,并且在左侧绘制弹跳的选秀球。我创建了一个名为 Ball 的类,它实现了 Runnable,并在我的主 Draf
这个问题已经有答案了: How can I calculate a time span in Java and format the output? (18 个回答) 已关闭 9 年前。 这是我的代码
我有一个 ASP.NET Web API 应用程序在我的本地 IIS 实例上运行。 Web 应用程序配置有 CORS。我调用的 Web API 方法类似于: [POST("/API/{foo}/{ba
我将用户输入的时间和日期作为: DatePicker dp = (DatePicker) findViewById(R.id.datePicker); TimePicker tp = (TimePic
放宽“邻居”的标准是否足够,或者是否有其他标准行动可以采取? 最佳答案 如果所有相邻解决方案都是 Tabu,则听起来您的 Tabu 列表的大小太长或您的释放策略太严格。一个好的 Tabu 列表长度是
我正在阅读来自 cppreference 的代码示例: #include #include #include #include template void print_queue(T& q)
我快疯了,我试图理解工具提示的行为,但没有成功。 1. 第一个问题是当我尝试通过插件(按钮 1)在点击事件中使用它时 -> 如果您转到 Fiddle,您会在“内容”内看到该函数' 每次点击都会调用该属
我在功能组件中有以下代码: const [ folder, setFolder ] = useState([]); const folderData = useContext(FolderContex
我在使用预签名网址和 AFNetworking 3.0 从 S3 获取图像时遇到问题。我可以使用 NSMutableURLRequest 和 NSURLSession 获取图像,但是当我使用 AFHT
我正在使用 Oracle ojdbc 12 和 Java 8 处理 Oracle UCP 管理器的问题。当 UCP 池启动失败时,我希望关闭它创建的连接。 当池初始化期间遇到 ORA-02391:超过
关闭。此题需要details or clarity 。目前不接受答案。 想要改进这个问题吗?通过 editing this post 添加详细信息并澄清问题. 已关闭 9 年前。 Improve
引用这个plunker: https://plnkr.co/edit/GWsbdDWVvBYNMqyxzlLY?p=preview 我在 styles.css 文件和 src/app.ts 文件中指定
为什么我的条形这么细?我尝试将宽度设置为 1,它们变得非常厚。我不知道还能尝试什么。默认厚度为 0.8,这是应该的样子吗? import matplotlib.pyplot as plt import
当我编写时,查询按预期执行: SELECT id, day2.count - day1.count AS diff FROM day1 NATURAL JOIN day2; 但我真正想要的是右连接。当
我有以下时间数据: 0 08/01/16 13:07:46,335437 1 18/02/16 08:40:40,565575 2 14/01/16 22:2
一些背景知识 -我的 NodeJS 服务器在端口 3001 上运行,我的 React 应用程序在端口 3000 上运行。我在 React 应用程序 package.json 中设置了一个代理来代理对端
我面临着一个愚蠢的问题。我试图在我的 Angular 应用程序中延迟加载我的图像,我已经尝试过这个2: 但是他们都设置了 src attr 而不是 data-src,我在这里遗漏了什么吗?保留 d
我是一名优秀的程序员,十分优秀!