คำถามติดแท็ก transparency

1
เหตุใดจึงรวมกันเป็นซีกโลก (และไม่ใช่ทรงกลม) เพื่อแก้สมการเรนเดอร์?
ในหนังสือข้อความส่วนใหญ่ที่ฉันได้เห็นนี่คือวิธีการเขียนสมการเรนเดอร์: L0( ω0) = Lอี( ω0) + ∫Ωฉ( ωผม, ω0) ลผม( ωผม)d ωผมL0(ω0)=Lอี(ω0)+∫Ωฉ(ωผม,ω0)Lผม(ωผม)dωผมL_0( \omega_0)= L_e(\omega_0)+\int_{\Omega}{f(\omega_i, \omega_0)L_i(\omega_i)\,\mathrm{d}\omega_i} ที่ถูกกำหนดให้เป็นซีกโลก (และฟังก์ชั่นเหล่านั้นขึ้นอยู่กับตัวแปรมากขึ้นและถูกละไว้ที่นี่เพื่อประโยชน์ของความเรียบง่าย)ΩΩ\Omega ทีนี้สมมติว่าพื้นผิวที่ใช้เป็นแก้วบางชนิดหรือพลาสติกใส เหตุใดจึงสมเหตุสมผลที่จะรวมเข้ากับซีกโลกเท่านั้น ฉันคิดว่าอาจมีแสงเข้ามาจากทิศทางใดก็ได้และดังนั้นโดเมนการรวมเข้าด้วยกันจึงควรเป็นทรงกลมทั้งหมด แสงที่มาจากด้านหลังแก้วเป็นสาเหตุอย่างไร

3
มีวิธีใดบ้างในการแสดงความโปร่งใสใน OpenGL
การผสมอัลฟ่าสามารถเปิดได้เพื่อให้พื้นผิวโปร่งใสเช่น: glDisable(GL_DEPTH_TEST); //or glDepthMask(GL_FALSE)? depth tests break blending glEnable(GL_BLEND); glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); แต่จะใช้งานได้ก็ต่อเมื่อแสดงวัตถุในลำดับหลังไปข้างหน้าเท่านั้น มิฉะนั้นสิ่งที่อยู่ในพื้นหลังจะปรากฏขึ้นด้านหน้าวัตถุที่ใกล้กว่าเช่นพื้นในภาพด้านล่าง สำหรับอนุภาคและองค์ประกอบ GUI การเรียงลำดับจะตกลง แต่สำหรับตาข่ายสามเหลี่ยมดูเหมือนว่ามันจะเป็นความพยายามมากเกินไปและช้าตามที่กล่าวไว้ที่นี่: https://www.opengl.org/wiki/Transparency_Sorting อะไรคือวิธีการทั่วไปในการจัดการกับสิ่งนี้? ฉันรู้ว่านี่ค่อนข้างกว้างและไม่ใช่รายละเอียดการใช้งานในเชิงลึกเพียงแค่คำอธิบายสั้น ๆ เกี่ยวกับวิธีการบางอย่างและสิ่งที่อาจเกี่ยวข้อง

1
นี่เป็นวิธีที่ถูกต้องในการใช้กฎหมายเบียร์หรือไม่?
เมื่อฉันใช้กฎของเบียร์ (การดูดซับสีผ่านระยะทางผ่านวัตถุ) มันไม่เคยดูดีมากด้วยเหตุผลบางอย่าง เมื่อฉันมีสีอยู่ด้านหลังวัตถุฉันจะคำนวณสีที่ปรับแล้วดังนี้ const vec3 c_absorb = vec3(0.2,1.8,1.8); vec3 absorb = exp(-c_absorb * (distanceInObject)); behindColor *= absorb; ที่จะให้สิ่งที่มีลักษณะเช่นนี้ (หมายเหตุหักเหเล็กน้อยนำไปใช้): และที่นี่มันไม่มีการหักเหของแสง: หมายเหตุที่ว่านี้จะดำเนินการเป็นของเล่น Shader ที่นี่ นี่เป็นคำอธิบายถึงสิ่งที่กฎหมายเบียร์ทำ แต่ไม่ได้ดูดีมากเมื่อเทียบกับภาพเช่นนี้: ไฮไลท์ด้านนอกฉันกำลังพยายามหาความแตกต่าง เป็นไปได้ไหมที่รูปทรงเรขาคณิตของฉันนั้นเรียบง่ายเกินไปที่จะแสดงมันออกมาได้ดีมาก? หรือฉันกำลังนำไปใช้อย่างไม่ถูกต้อง

3
ฉันจะทำให้ก้อนน้ำแข็งของฉันดูเป็นจริงได้อย่างไร
ฉันสามารถสร้างแบบจำลองก้อนน้ำแข็งเป็นก้อนโปร่งใสที่ผิดรูปเล็กน้อยโดยมีดัชนีการหักเหของน้ำ แต่พวกมันดูไม่น่าเชื่อ มันดูเหมือนก้อนแก้วมากกว่าน้ำแข็ง การดูก้อนน้ำแข็งจริงฉันสามารถอธิบายความแตกต่างได้อย่างสังหรณ์ใจ แต่ฉันไม่รู้คุณสมบัติทางกายภาพที่จะเปลี่ยนเพื่อให้ตรงกับ: ก้อนน้ำแข็งเปียก ฉันดูเหมือนแก้วแห้ง ก้อนน้ำแข็งมีความโปร่งใสในสถานที่และไม่ได้อยู่ในที่อื่น ก้อนน้ำแข็งมักจะมีรอยแตกที่มองเห็นได้แม้จะไม่แยกออกจากกัน ในกรณีนี้ฉันพยายามจำลองก้อนน้ำแข็งบนพื้นผิว (ในอากาศไม่ใช่ลอยอยู่ในน้ำ) ฉันต้องใช้เทคนิคใดในการเพิ่มความสมจริง? ฉันไม่ได้มองหาเทคนิคแบบเรียลไทม์เพียงเพื่อสร้างภาพนิ่ง ฉันอยากให้น้ำแข็งเป็นภาพเหมือนจริงแม้จะถ่ายภาพระยะใกล้และเพื่อแสดงการกัดกร่อนและเงาที่สมจริง ฉันลองใช้ขอบโค้งและเคลือบก้อนน้ำแข็งของฉันด้วยวัสดุโปร่งใสบาง ๆ เพื่อจำลองชั้นน้ำที่ละลาย แต่ดูเหมือนว่ามันจะไม่ทำให้เปียก ฉันได้ลองฝังทรงกลมโปร่งใสครึ่งหนึ่งของขนาดของลูกบาศก์ที่กึ่งกลางด้วยเอฟเฟกต์หมอก แต่มันไม่ได้รวมกันเป็นก้อนตามธรรมชาติ - มันดูเหมือนฝังอยู่ แม้แต่ชุดทรงกลมซ้อนกันที่มีหมอกเพิ่มขึ้นเรื่อย ๆ ก็ยังดูไม่ถูกต้อง
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.