Unity中怎么表示一個(gè)平面

先看一下平面方程的推導(dǎo):


QQ圖片20180816105821.png

由最后的公式可得混埠,A,B诗轻,C是法線向量x0钳宪,y0,z0是平面上任一點(diǎn)扳炬,d常量(匡紅的部分)是法線和已知點(diǎn)的點(diǎn)乘取反使套。所以,設(shè)已知平面Transform為surface鞠柄,表示該平面方程的方法為:
Vector3 pos = surface.position;
Vector3 normal = surface.up;
float d = -Vector3.Dot(normal, pos) ;
Vector4 plane = new Vector4(normal.x, normal.y, normal.z, d);
對(duì)比一下AngryBots中地面反射的平面方程:
private void RenderReflectionFor (Camera cam, Camera reflectCamera)
{
if(!reflectCamera)
return;

    SaneCameraSettings(reflectCamera);
    
    reflectCamera.backgroundColor = clearColor;             
                        
    GL.SetRevertBackfacing(true);       
                        
    Transform reflectiveSurface = reflectiveSurfaceHeight;
        
    Vector3 eulerA = cam.transform.eulerAngles;
                
    reflectCamera.transform.eulerAngles = new Vector3(-eulerA.x, eulerA.y, eulerA.z);
    reflectCamera.transform.position = cam.transform.position;
            
    Vector3 pos = reflectiveSurface.position;
    pos.y = reflectiveSurface.position.y;
    Vector3 normal = reflectiveSurface.up;
    float d = -Vector3.Dot(normal, pos) - clipPlaneOffset;
    Vector4 reflectionPlane = new Vector4(normal.x, normal.y, normal.z, d);
            
    Matrix4x4 reflection = Matrix4x4.zero;
    reflection = CalculateReflectionMatrix(reflection, reflectionPlane);        
    oldpos = cam.transform.position;
    Vector3 newpos = reflection.MultiplyPoint (oldpos);
                    
    reflectCamera.worldToCameraMatrix = cam.worldToCameraMatrix * reflection;
            
    Vector4 clipPlane = CameraSpacePlane(reflectCamera, pos, normal, 1.0f);
            
    Matrix4x4 projection =  cam.projectionMatrix;
    projection = CalculateObliqueMatrix(projection, clipPlane);
    reflectCamera.projectionMatrix = projection;
    
    reflectCamera.transform.position = newpos;
    Vector3 euler = cam.transform.eulerAngles;
    reflectCamera.transform.eulerAngles = new Vector3(-euler.x, euler.y, euler.z);  

    reflectCamera.RenderWithShader (replacementShader, "Reflection");           
    
    GL.SetRevertBackfacing(false);                  
}

構(gòu)建一個(gè)平面方程就是這么簡(jiǎn)單。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末嫉柴,一起剝皮案震驚了整個(gè)濱河市厌杜,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌计螺,老刑警劉巖夯尽,帶你破解...
    沈念sama閱讀 217,509評(píng)論 6 504
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異登馒,居然都是意外死亡匙握,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,806評(píng)論 3 394
  • 文/潘曉璐 我一進(jìn)店門(mén)陈轿,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)圈纺,“玉大人秦忿,你說(shuō)我怎么就攤上這事《耆ⅲ” “怎么了灯谣?”我有些...
    開(kāi)封第一講書(shū)人閱讀 163,875評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)蛔琅。 經(jīng)常有香客問(wèn)我胎许,道長(zhǎng),這世上最難降的妖魔是什么罗售? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,441評(píng)論 1 293
  • 正文 為了忘掉前任辜窑,我火速辦了婚禮,結(jié)果婚禮上寨躁,老公的妹妹穿的比我還像新娘穆碎。我一直安慰自己,他們只是感情好朽缎,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,488評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布惨远。 她就那樣靜靜地躺著,像睡著了一般话肖。 火紅的嫁衣襯著肌膚如雪北秽。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 51,365評(píng)論 1 302
  • 那天最筒,我揣著相機(jī)與錄音贺氓,去河邊找鬼。 笑死床蜘,一個(gè)胖子當(dāng)著我的面吹牛辙培,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播邢锯,決...
    沈念sama閱讀 40,190評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼扬蕊,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了丹擎?” 一聲冷哼從身側(cè)響起尾抑,我...
    開(kāi)封第一講書(shū)人閱讀 39,062評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎蒂培,沒(méi)想到半個(gè)月后再愈,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,500評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡护戳,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,706評(píng)論 3 335
  • 正文 我和宋清朗相戀三年翎冲,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片媳荒。...
    茶點(diǎn)故事閱讀 39,834評(píng)論 1 347
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡抗悍,死狀恐怖驹饺,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情檐春,我是刑警寧澤逻淌,帶...
    沈念sama閱讀 35,559評(píng)論 5 345
  • 正文 年R本政府宣布,位于F島的核電站疟暖,受9級(jí)特大地震影響卡儒,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜俐巴,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,167評(píng)論 3 328
  • 文/蒙蒙 一骨望、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧欣舵,春花似錦擎鸠、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,779評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至糟把,卻和暖如春绢涡,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背遣疯。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,912評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工雄可, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人缠犀。 一個(gè)月前我還...
    沈念sama閱讀 47,958評(píng)論 2 370
  • 正文 我出身青樓数苫,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親辨液。 傳聞我的和親對(duì)象是個(gè)殘疾皇子虐急,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,779評(píng)論 2 354

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