1
ฉันจะลดนามแฝงในเอฟเฟกต์การเรืองแสงร่างของฉันได้อย่างไร
ฉันพยายามจำลองเอฟเฟกต์ร่างเรืองแสงในเกม Left 4 Dead เอฟเฟกต์ทำให้วัตถุมีการเรืองแสงแม้ว่าวัตถุจะถูกบัง นี่คือภาพหน้าจอของเอฟเฟกต์: ฉันสามารถทำซ้ำเอฟเฟกต์นี้ในโปรแกรมที่ใช้ OpenGL ได้บ้าง นี่คือสิ่งที่ฉันกำลังทำอยู่: สร้างพื้นผิวสีและความลึกที่มีขนาดครึ่งหนึ่งของขนาดหน้าจอสำหรับแสดงวัตถุที่เรืองแสง ล้างพื้นผิวสี / แสงที่เรืองแสง สีจะถูกล้างเป็นสีดำ สำหรับวัตถุที่ส่องแสงแต่ละอันให้ฉายไปบนพื้นผิวเรืองแสงเป็นสีทึบ ทำการเบลอเกาส์แยกไม่ออกบนพื้นผิวเรืองแสง ทำให้ฉากความละเอียดเต็มตามปกติ ผสมผสานพื้นผิวเรืองแสงเข้ากับฉากปกติอย่างแนบเนียน แต่ใช้พื้นผิวความลึกของแสงเรืองแสงเพื่อปกปิดวัตถุออกมาเหลือเพียงโครงร่างที่เบลอ นี่คือภาพหน้าจอของแนวทางของฉัน: นี่คือ shader ส่วนที่รวมพื้นผิวเรืองแสงกับฉาก: uniform sampler2D glowColorTex; uniform sampler2D glowDepthTex; uniform sampler2D sceneColorTex; void main() { vec2 uv = gl_TexCoord[0].st; vec4 color = texture2D( sceneColorTex, uv); float depth = texture2D( …