คำถามติดแท็ก reflection-rendering

1
การบัญชีสำหรับคลื่นเมื่อทำการสะท้อนระนาบ
ฉันได้ศึกษาตัวอย่างของ Nvidia จาก SDK โดยเฉพาะโครงการIsland11และฉันพบบางสิ่งที่อยากรู้เกี่ยวกับรหัส HLSL ชิ้นหนึ่งซึ่งแก้ไขการสะท้อนขึ้นและลงตามสถานะความสูงของคลื่น โดยธรรมชาติหลังจากตรวจสอบย่อหน้าสั้น ๆ ของรหัส: // calculating correction that shifts reflection up/down according to water wave Y position float4 projected_waveheight = mul(float4(input.positionWS.x,input.positionWS.y,input.positionWS.z,1),g_ModelViewProjectionMatrix); float waveheight_correction=-0.5*projected_waveheight.y/projected_waveheight.w; projected_waveheight = mul(float4(input.positionWS.x,-0.8,input.positionWS.z,1),g_ModelViewProjectionMatrix); waveheight_correction+=0.5*projected_waveheight.y/projected_waveheight.w; reflection_disturbance.y=max(-0.15,waveheight_correction+reflection_disturbance.y); การคาดเดาครั้งแรกของฉันคือมันชดเชยการสะท้อนภาพถ่ายเมื่อถูกก่อกวนในแนวดิ่ง (คลื่น) ขยับเรขาคณิตที่สะท้อนกลับไปยังจุดที่ไม่มีอะไรเกิดขึ้นและน้ำจะปรากฏขึ้นราวกับว่าไม่มีอะไรอยู่หรือแค่ท้องฟ้า: ทีนี้, นั่นคือท้องฟ้าที่สะท้อนให้เห็นซึ่งเราควรเห็นการสะท้อนสีเขียว / เทา / เหลืองของภูมิประเทศที่ lerped กับแนวของน้ำ ปัญหาของฉันคือตอนนี้ฉันไม่สามารถระบุได้ว่าอะไรคือตรรกะที่อยู่เบื้องหลัง การคาดการณ์ตำแหน่งอวกาศของโลกที่แท้จริงของจุดของรูปคลื่น / น้ำแล้วคูณด้วย -.5f …

1
วิธีการใช้ ripples ชนิดนี้ด้วยตัวแยกส่วน GLSL?
ดังนั้นฉันจึงได้นำส่วนการสะท้อนกลับมาใช้แล้ว: uniform sampler2D texture; uniform vec2 resolution; uniform vec3 overlayColor; void main() { vec2 uv = gl_FragCoord.xy / resolution.xy; if (uv.y > 0.3)// is air - no reflection or effect { gl_FragColor = texture2D(texture, vec2(uv.x, uv.y)); } else { // Compute the mirror effect. vec4 color = texture2D(texture, vec2(uv.x, 0.6 …
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.