ฉันกำลังพยายามใช้การทำแผนที่โทนพร้อมกับการปรับตาและ HDR ที่จริงฉันใช้งานไปแล้ว แต่ฉันไม่พอใจกับผลลัพธ์และฉันคิดว่าฉันทำอะไรผิด
ภาพสุดท้ายของฉัน (ก่อนประมวลผลภายหลัง) ฉันเก็บไว้ในครึ่งพื้นผิวลอย ฉันมีพื้นผิวของตัวช่วย 2 ตัว อันแรกเก็บค่าความส่องสว่างและค่าเฉลี่ยของ avg, min และ max ไว้ใน mip-map ครั้งล่าสุด ร้านที่สองปรับมูลค่าซึ่งคำนวณเป็น:
prevLum + (avgLum - prevLum) * (1.0 - exp2(-adaptionRate))
เมื่อ prevLum เป็นค่าการปรับก่อนหน้านี้ (ขนาดของพื้นผิวนี้คือ 1x1) พื้นผิวความสว่างของการบันทึกเป็นรูปแบบ R8B8G8 และอันที่สองคือ R8 ในบทเรียนฉันเห็นว่ามีการใช้พื้นผิวแบบครึ่งลอย แต่ในกรณีของฉันฉันมีภาพที่สว่างเกินไป (เกือบขาว)
ในโปรแกรมประมวลผลหลังการขั้นสุดท้ายฉันใช้ค่าทั้งหมดเพื่อรับการปรับตาและการจับคู่โทนโดยใช้รหัสนี้:
float autokey(in float lum) {
return 1.03 - 2.0 / (2.0 + log10(lum + 1.0));
}
float hejl(in float color) {
float x = max(0.0, color - 0.004);
return (x * (A * x + B)) / (x * (A * x + C) + D);
}
float adaptedLum = texture(adaptedLuminance, vec2(0.5)).r;
float exp = exposure * autokey(adaptedLum) / adaptedLum;
result *= exp;
result.xyz=RGB2xyY(result.xyz); // conversion to CIE xyY
result.z = hejl(result.z);
result.xyz=xyY2RGB(result.xyz);
และนี่คือผลลัพธ์ของฉัน:
- เปิดการปรับตาและการทำแผนที่โทนเสียง
- การปรับตาเท่านั้น
- การทำแผนที่เสียงเท่านั้น
- ทุกอย่างปิด
อย่างที่คุณเห็นเมื่อการทำแผนที่โทนเสียงเปิดใช้งานสีกระต่ายเป็นสีซีดกว่า และเมื่อการปรับสายตาถูกเปิดใช้ในภาพสุดท้ายนั้นจะมืดกว่ามาก ใครบางคนสามารถอธิบายสิ่งที่อาจทำให้ฉันเพราะฉันคิดว่าบางสิ่งที่นี่ผิด อาจเป็นบางอย่างที่มีช่องว่างสีที่ฉันไม่เข้าใจใช่ไหม หรือใช้กับบลูมซึ่งถูกนำไปใช้ก่อนการจับคู่โทนเสียงและการปรับตา
ฉันยังมีพฤติกรรมแปลก ๆ อีกอย่างหนึ่งที่มีการดัดแปลงดวงตา เมื่อฉันดูพื้นที่มืดพื้นหลัง (ท้องฟ้า) จะสว่างขึ้น มันโอเค แต่มันจะเกิดขึ้นเสมอเมื่อศูนย์กลางของกล้องอยู่ในพื้นที่สีดำ (ไม่ว่ากล้องจะอยู่ห่างจากบริเวณนี้มากแค่ไหน)
ฉันพิจารณาจากการติดตั้งที่รวมอยู่ในโครงการในหน้านี้: John Chapman , Nutty Software