ogre3D學習基礎9 光源程式例項

2022-01-29 01:38:47 字數 1568 閱讀 1690

這一章練習一下光源的使用,光源分為三種:點光源,聚光源,有向光。具體內容前面說過,這裡就不解釋了。

繼續在上一章的程式的基礎上實現。

1、建立攝像機(camera)

1

class example1:public212

//....其他**

13 }

2、建立視口(viewport)

1

virtual

void

createviewports()

2

總結:攝像機與視口的區別與聯絡

1、攝像機相當於現實世界中人的位置,視口相當於人的眼睛,就好象你要看電影一樣,首先你要選好座位(攝像機),然後你才能看電影(視口)。所以必須在建立過攝像機口建立視口,並繫結到攝像機上。

2、乙個視口只能繫結到乙個攝像機上,這個很好理解。乙個人只有一雙眼睛,也只能佔乙個位置。

3、乙個攝像機可以繫結多個視口。相當於乙個電影可有多人**。

4、乙個場景可以繫結那個多個攝像機。

3、設定光源

1

void

createscene()

2

效果如圖:

**解釋

平面的設定,看源**:

1   plane (const vector3& rknormal, real fconstant);//建構函式如此而已,以法向量為基礎建立一平面,normal的意思是就法向量啊,你記得這個單詞嗎?
看**,關鍵是在unit_y上,這是乙個靜態常成員變數,  如 static const vector2 unit_y;

1  plane plane(vector3::unit_y, 0);//y軸作為平面的法線,第二個引數表示平面離原點距離
是否接受投射的陰影

1

virtual

void setcastshadows(bool castshadows);//

為true時,本身接收投射陰影,否則不接收。

光源設定

其中的lighttypes為light成員變數,代表三種光源型別

1

enum

lighttypes

2;

漫色光與鏡面光

1

void setspecularcolour(real red, real green, real blue);//鏡面色

2void setdiffusecolour(real red, real green, real blue);//漫射光

引數的取值範圍是從0到1的浮點數,全0為黑色,全1為白色。至於他們的具體定義與效果則需要3d圖形學方面的知識了。

OGRE 3D 程式設計 Ogre 材質1 轉

材質 material 材質是乙個很基本的術語,表示你的物體對光的反射方式。但是對它的實現並不像其解釋這樣簡單,我們會用這一章節進行詳細地介紹ogre中相關的技術。我們剛才提及過,材質定義了物體對光線反射的處理方法。這裡暗示了材質的表現與光源的型別相關 聚光 spotlights 點光源 point...

Ogre3D 實現角色換裝

乙個角色由多個模型組成,這些模型掛在同乙個主節點上,由同乙個骨骼動畫控制著。換裝就是剔除或新增一些模型,如果只是刪增模型,那樣只可以實現一起平移和旋轉。因為裝備,如衣服都是要和身體一起發生形變的。所以,模型之間要統一這些發生形變的方式,那就是骨骼。分類 1.屬於掛接物體,不屬於換裝範疇,建立乙個節點...

Ogre3D嵌入Qt框架 之 小結

public ogreview qwidget parent ogreview qsize minimumsizehint const qsize sizehint const protected void setupview 建立ogre使用的內容,場景內容 void update 通過它,手動更...