02倍啥、添加材質(zhì)澎埠、光源以及物體對象的陰影

threejs中添加新的材質(zhì)和燈光以及設(shè)置陰影屬性

首先,threejs的初始化蒲稳,需要?jiǎng)?chuàng)建場景、相機(jī)江耀、渲染器

function init() {
  // 創(chuàng)建場景、相機(jī)摧冀、渲染器
  var scene = new THREE.Scene();
  var camera = new THREE.PerspectiveCamera(45, window.innerWidth / window.innerHeight, 0.1, 1000);
  var renderer = new THREE.WebGLRenderer();
  renderer.setClearColor(new THREE.Color(0xEEEEEE, 1.0));
  renderer.setSize(window.innerWidth, window.innerHeight);
  renderer.shadowMapEnabled = true;
  
}

創(chuàng)建一個(gè)平面

// 創(chuàng)建平面
var planeGeometry = new THREE.PlaneGeometry(60, 20); // 平面的幾何維度(給定寬系宫、高)
var planeMaterial = new THREE.MeshLambertMaterial({ color: 0xffffff }); // 平面的材質(zhì)設(shè)
var plane = new THREE.Mesh(planeGeometry, planeMaterial); // 將平面加入到網(wǎng)格對象中去
plane.receiveShadow = true;
            
plane.rotation.x = -0.5 * Math.PI;
plane.position.x = 0;
plane.position.y = 0;
plane.position.z = 0;
scene.add(plane);

容器中需要設(shè)置相機(jī)的視角

// 設(shè)置相機(jī)視角
camera.position.x = 30;
camera.position.y = 40;
camera.position.z = 30;
camera.lookAt(scene.position);

初始化操作完成建车,需要將場景、相機(jī)加入到渲染器中去

// 加入到dom中去
document.getElementById('WebGL-output').appendChild(renderer.domElement);
renderer.render(scene, camera);

平面中添加一個(gè)方塊物體對象潮罪,物體對象可以去設(shè)置它的寬高屬性以及去設(shè)置它的材質(zhì)屬性领斥,然后加入到網(wǎng)格對象中,也可以去設(shè)置方塊的坐標(biāo)位置月洛。

// 平面中加入方塊
var cubeGeometry = new THREE.BoxGeometry(5, 5, 5);
var cubeMaterial = new THREE.MeshLambertMaterial({ color: 0xff0000});
var cube = new THREE.Mesh(cubeGeometry, cubeMaterial);
cube.castShadow = true;
            
cube.position.x = -5;
cube.position.y = 2.5; // 0的位置,方塊卡在坐標(biāo)軸中間细层,需要設(shè)置半個(gè)高度
cube.position.z = 0;
            
scene.add(cube);

通過SpotLight()方法創(chuàng)建一個(gè)光源,并從spotLight.position.set(40, 40, 40)位置處照射我們的場景scene疫赎,不同的材質(zhì)對于光源的反應(yīng)各不相同(如果設(shè)置的網(wǎng)格線材質(zhì)(MeshBasicMaterial()方法)不會(huì)對場景中的光源產(chǎn)生任何反應(yīng))

Three.js中有兩種材質(zhì)可以對于光源產(chǎn)生反應(yīng):MeshLambertMaterial和MeshPhongMaterial

同時(shí)需要注意的是Three.js在設(shè)置了光源后,并不會(huì)生成陰影抵卫,因?yàn)殇秩娟幱皶?huì)消耗大量的性能胎撇。
renderer.shadowMapEnabled = true; // 這樣是允許陰影映射的

這樣設(shè)置之后我們還需要告知是哪個(gè)物體對象需要接受投影,因此创坞,我們需要在方塊物體對象中加入屬性:
plane.receiveShadow = true;
cube.castShadow = true;

最后,在定義場景的時(shí)候题涨,需要明確哪個(gè)光源能產(chǎn)生陰影,并不是所有物體對象能接受所有的光源生成陰影巡雨,因此席函,在點(diǎn)光源中加入一個(gè)屬性設(shè)置:
spotLight.castShadow = true;

// 加入點(diǎn)光源
var spotLight = new THREE.SpotLight(0xffffff);
spotLight.position.set(40, 40, 40);
spotLight.castShadow = true;
scene.add(spotLight);
image.png
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市正蛙,隨后出現(xiàn)的幾起案子营曼,更是在濱河造成了極大的恐慌,老刑警劉巖蒂阱,帶你破解...
    沈念sama閱讀 216,544評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件录煤,死亡現(xiàn)場離奇詭異鳄厌,居然都是意外死亡妈踊,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,430評論 3 392
  • 文/潘曉璐 我一進(jìn)店門新思,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人夹囚,你說我怎么就攤上這事〖侔ィ” “怎么了鞍历?”我有些...
    開封第一講書人閱讀 162,764評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長劣砍。 經(jīng)常有香客問我,道長香嗓,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,193評論 1 292
  • 正文 為了忘掉前任靠娱,我火速辦了婚禮掠兄,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘蚂夕。我一直安慰自己,他們只是感情好百框,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,216評論 6 388
  • 文/花漫 我一把揭開白布牍汹。 她就那樣靜靜地躺著柬泽,像睡著了一般。 火紅的嫁衣襯著肌膚如雪锨并。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,182評論 1 299
  • 那天解幼,我揣著相機(jī)與錄音,去河邊找鬼撵摆。 笑死,一個(gè)胖子當(dāng)著我的面吹牛暑中,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播鳄逾,決...
    沈念sama閱讀 40,063評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼灵莲,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了枚抵?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,917評論 0 274
  • 序言:老撾萬榮一對情侶失蹤俄精,失蹤者是張志新(化名)和其女友劉穎榕堰,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體逆屡,經(jīng)...
    沈念sama閱讀 45,329評論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡魏蔗,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,543評論 2 332
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了莺治。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,722評論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡床佳,死狀恐怖榄审,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤浪感,帶...
    沈念sama閱讀 35,425評論 5 343
  • 正文 年R本政府宣布影兽,位于F島的核電站,受9級特大地震影響赢笨,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜茧妒,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,019評論 3 326
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望纸型。 院中可真熱鬧梅忌,春花似錦狰腌、人聲如沸牧氮。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,671評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽尸诽。三九已至甥材,卻和暖如春性含,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背商蕴。 一陣腳步聲響...
    開封第一講書人閱讀 32,825評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留俭令,地道東北人部宿。 一個(gè)月前我還...
    沈念sama閱讀 47,729評論 2 368
  • 正文 我出身青樓,卻偏偏與公主長得像理张,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個(gè)殘疾皇子雾叭,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,614評論 2 353

推薦閱讀更多精彩內(nèi)容