Saya belajar render pipa yang dapat diprogram dengan menerapkan renderer perangkat lunak kecil. Saya mencoba menerapkannya dalam gaya 'perangkat keras'. Namun, saya tidak terbiasa dengan pipa GPU dan mendapat beberapa masalah kliping yang homogen.
Ruang kliping homogen berisi variabel w yang bervariasi di setiap titik. Apakah setiap koordinat objek homogen (antara matriks proyeksi dan pembagian homogen oleh w) pada ruang klipingnya sendiri? Jika demikian, bagaimana cara memotong garis dan segitiga lebih dekat daripada Frustum atau bahkan meregangkan di belakang kamera (yaitu w <= frustum_znear)?
Pembaruan : utas ini mengatakan bahwa kliping di ruang homogen secara langsung merupakan masalah persimpangan di ruang homogen 4D. Yang berarti titik persimpangan adalah p_vec4 = t * point1_vec4 + (1 - t) * point2_vec4
. Katakanlah saya memiliki P0(-70, -70, 118, 120)
dan P1(-32, -99, -13, -11)
dalam ruang homogen 4D, dan titik persimpangan dengan plane w = -z
(yang dalam NDC adalah z = -1) adalah (-35, -96, -1, 0.9) t = 0.99
, bagaimana cara mendapatkan objek vertex yang sesuai dalam ruang NDC?
Dan begitu saya mendapatkan titik persimpangan yang benar, haruskah saya melakukan interpolasi antara objek vertex yang dihasilkan oleh vertex shader untuk mendapatkan objek vertex baru?