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