我正在尝试从头开始用 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
}
}
}
但我不知道这是否正确,如果是,我如何获得向量值,对于初学者来说,Normal?
你能指出我正确的方式吗?我已经尝试了很多谷歌搜索,但没有成功,提前谢谢你