二鸠项、 燈光模塊的使用方法。
2.1 定向光
代碼清單如下:
final DirectionalLight directionalLight = new DirectionalLight();
directionalLight.setLookAt(MathC.Vector.ZERO);
directionalLight.setPower(1.5f);
directionalLight.enableLookAt();
addLight(directionalLight);
Material sphereMaterial = new Material();
SpecularMethod.Phong phongMethod = new SpecularMethod.Phong();
phongMethod.setShininess(180);
sphereMaterial.setDiffuseMethod(new DiffuseMethod.Lambert());
sphereMaterial.setSpecularMethod(phongMethod);
sphereMaterial.enableLighting(true);
- 首先創(chuàng)建一個定向光對象稳析,這個是不會陌生的,這里不在贅述弓叛。
- 設置定向光源的方向彰居,setLookAt(MathC.Vector.ZERO),可以直接設置規(guī)定好的幾個方向撰筷,可以點擊這個枚舉類中查看一下陈惰,有z軸負方向跟x軸正方向等,也可以設置一個方向向量毕籽,setLookAt(float x, float y, float z)抬闯。
@param x y z 這個接口接受一個方向向量。 - setPower(1.5f)設置光源的半徑影钉,也就是光源的半徑是多少画髓。
@param radio 該參數接受一個float類型的參數來規(guī)定光源的半徑是多少。 - addLight(directionalLight)將光源對象加入到渲染隊列中進行渲染平委。
- 創(chuàng)建一個材質對象奈虾,準備將光源的渲染對象插入到材質對象的著色器中,進行光源的渲染。
- 創(chuàng)建一個phone光源模型肉微,這里不在贅述匾鸥,知道需要這么創(chuàng)建就可以了。
- 設定模型對象表面的粗糙度碉纳,這參數跟鏡面光的強度有關系勿负,如果粗糙度越低,那么鏡面光越強劳曹,鏡面光照也被稱為高光奴愉。
@param shininess 表示模型表面粗糙度的參數。 - 創(chuàng)建一個Lambert光照模型铁孵,這樣光照的強度會隨著距離的遠近來調節(jié)锭硼,這是lambert光照模型(知道步驟即可)并將其設置到模型的材質中。
- 將phone光照模型設置到模型的材質中蜕劝,并且打開光源的開光檀头,將光源渲染加入到場景渲染中。
說明:
將創(chuàng)建好的材質設置到模型材質中岖沛,這樣就可以給模型添加燈光了暑始。這一點可以直接參考前面是如果給ui設置材質函數的設置,這里不在贅述這些步驟了婴削。
2.2 定向光
代碼清單如下:
PointLight pointLight = new PointLight();
pointLight.translateAbs(0,0,0);
pointLight.setPower(1.5f);
pointLight.setLookAt(0, 0, 0);
addLight(pointLight);
Material sphereMaterial = new Material();
sphereMaterial.setDiffuseMethod(new DiffuseMethod.Lambert());
SpecularMethod.Phong phongMethod = new SpecularMethod.Phong();
phongMethod.setShininess(180);
sphereMaterial.setSpecularMethod(phongMethod);
sphereMaterial.setAmbientIntensity(0, 0, 0);
sphereMaterial.enableLighting(true);
注意:接口在上面大部分都介紹過廊镜,這邊都不在贅述一些重復的接口了,下面就介紹一些上面沒有介紹過的接口唉俗。
- translateAbs(0,0,0)設置光源的位置期升,因為光照對象及ANode的子類,當然你擁有模型的某些屬性互躬。
@param x y z 設置光源在3D場景中的位置。 - setLookAt(0, 0, 0)設置光源的觀測點颂郎,也就是光源的直照的點吼渡。
- setAmbientIntensity(0, 0, 0)設置環(huán)境光的強度,這個值是環(huán)境光的設置接口參數乓序。
@param r g b 三個顏色通道的顏色寺酪,這邊直接設置0-1之間就可以。
說明:這里介紹了接口的使用替劈,可以直接查看接口中的方法寄雀,這樣就可以更好的使用。
2.2 聚光燈
final SpotLight spotLight = new SpotLight();
spotLight.setPower(1.5f);
spotLight.enableLookAt();
spotLight.setPosition(0, 4.0, 0.0);
spotLight.setLookAt(0, 0, 0);
addLight(spotLight);
Material sphereMaterial = new Material();
sphereMaterial.setDiffuseMethod(new DiffuseMethod.Lambert());
SpecularMethod.Phong phongMethod = new SpecularMethod.Phong();
phongMethod.setShininess(180);
sphereMaterial.setSpecularMethod(phongMethod);
sphereMaterial.setAmbientIntensity(0, 0, 0);
sphereMaterial.enableLighting(true);
注意:大部分的接口都介紹過了陨献,這里不在贅述了盒犹,可以查看上面的接口設置。
- setCameraW(float[] cameraW)這個接口可以將攝像機與定向光與聚光燈綁定到一起。
@param cameraW 這個參數是攝像機的w向量值急膀。