我想從頭開始編寫一個程序,用Java渲染一個帶有光線投射技術和phong照明的球體,但我有點失落。自己用光線投射實現phong照明
我瞭解海防方程係數背後的概念,但我不知道怎麼去矢量值,什麼是這一切與光線投射的關係
讓我們說,我想呈現在我的屏幕中間的球體,我有它的位置和半徑,所以(cx,cy,r)。我現在從哪裏開始?我究竟如何獲得矢量值?我的想法如下(僞)
int cx = window width/2
int cy = window height/2
int r = 30;
for(i = 0 -> window height) {
for(j = 0 -> window width) {
if((j-cx)^2 + (i-cy)^2 < r^2) {
//point inside
Color c = phong(arguments..)
draw pixel j,i with color c
}
}
}
,但我不知道這是否正確與否,如果是,我怎麼矢量值,對於初學者來說,正常嗎?
你能指點我嗎?我嘗試了很多沒有成功的谷歌搜索,謝謝
幾年前,我用Java編寫了一個非常非常簡單的射線追蹤器:https://github.com/gkopff/stingray - 也許這會給你一些啓發。 –