1. 程式人生 > >整合OGRE的地形和PSSM+LiSPSM陰影演算法

整合OGRE的地形和PSSM+LiSPSM陰影演算法

OGRE版本1.7.1的Sample裡包含了地形的示例,且用到了PSSM+LiSPSM。

今天嘗試把Character的Sinbad模型擺到地形上,不過模型的材質本身不支援PSSM。

看了下地形示例的實現,發現它在給Shader傳PSSM分界點資料時,用了把模板材質clone一份,再設定diffusemap和pssm分界點的方法,相當讓人無語....

 

如果有幾百種不同貼圖的物件,就得在程式碼裡手動為每一個物件設定diffusemap和pssm分界點,前者其實在材質指令碼中可以用繼承來覆蓋,後者其實整個場景用到的資料都是一樣的。好在OGRE增加了shared_params,可以多個shader共享相同的引數,在程式碼裡只設置一遍就可以了。

修改後的fp:

 

c++:

 

相關推薦

整合OGRE地形PSSM+LiSPSM陰影演算法

OGRE版本1.7.1的Sample裡包含了地形的示例,且用到了PSSM+LiSPSM。 今天嘗試把Character的Sinbad模型擺到地形上,不過模型的材質本身不支援PSSM。 看了下地形示例的實現,發現它在給Shader傳PSSM分界點資料時,用了把模板材質clone

Terrain Shadow ,整合OGRE地形PSSM+LiSPSM陰影演算法

OGRE版本1.7.1的Sample裡包含了地形的示例,且用到了PSSM+LiSPSM。 今天嘗試把Character的Sinbad模型擺到地形上,不過模型的材質本身不支援PSSM。 看了下地形示例的實現,發現它在給Shader傳PSSM分界點資料時,用了把模板材質clone一份,再設定diffusemap

整合OGREbullet的地形

把OGRE和bullet的地形整合在一起比預想中的麻煩。 主要是兩個問題:通過HeightField生成三角形網格的方式不一樣,以及HeightFiled定址方式不同(OGRE轉換成float陣列後,以坐下角為(0,0)點,而bullet的btHeightfieldTerra

整合Spring框架Hibernate框架

slf4j erl update rep java 監聽 session hiberna .cn -------------------siwuxie095 整合 Spring 框架和 Hibernate 框架

SSH整合的xml註解

area dao AC chang -h gin cati rac fin DAO: 1 public interface IDeptDAO { 2 public int addDept(Dept dept); 3 } 1 @Repository("dept

國內作戰指揮學院畢業的程式設計師解析:美國國防、銀行支付的加密演算法

WebSocket協議是基於TCP的一種新的網路協議。它實現了瀏覽器與伺服器全雙工(full-duplex)通訊——可以通俗的解釋為伺服器主動傳送資訊給客戶端。 區別於MQTT、XMPP等聊天的應用層協議,它是一個傳輸通訊協議。它有著自己一套連線握手,以及資料傳輸的規範。 而本文要講到的SRWebSock

陰影演算法

陰影演算法,在3D渲染中是很重要的一部分。陰影演算法大致可以分為以下三類:基於ray tracing,基於shadow volume,基於shadow map(Z buffer).     Ray tracing可以很自然地實現shadow,不需要特殊處理,但是ray tra

【IM】關於整合學習BaggingBoosting的理解

整合學習在各大比賽中非常流程,如XGboost、LGBM等,對其基學習器決策樹及其剪枝等,可參考: https://blog.csdn.net/fjssharpsword/article/details/54861274 整合學習可參考: https://blog.csdn.net/

使用PIL幾種分類演算法對標準數字圖片進行識別

詳細程式碼見GitHub: https://github.com/nickliqian/simple_number_recognition simple_number_recognition 使用PIL和幾種分類演算法對標準數字圖片進行識別。 背景 在採集某

【資料結構週週練】014 利用棧非遞迴演算法求鏈式儲存的二叉樹是否為完全二叉樹

一、前言 首先,明天是個很重要的節日,以後我也會過這個節日,在這裡,提前祝所有程式猿們,猿猴節快樂,哦不,是1024程式設計師節快樂。 今天要給大家分享的演算法是判斷二叉樹是否為完全二叉樹,相信大家對完全二叉樹的概念並不陌生,如果是順序儲存就會很方便,那鏈式儲存怎麼判斷呢,我的做法是:若

【資料結構週週練】013 利用棧非遞迴演算法求二叉樹的高

一、前言 二叉樹的高是樹比較重要的一個概念,指的是樹中結點的最大層數本次演算法通過非遞迴演算法來求得樹的高度,借用棧來實現樹中結點的儲存。 學英語真的很重要,所以文中的註釋還有輸出以後會盡量用英語寫,文中出現的英語語法或者單詞使用錯誤,還希望各位英語大神能不吝賜教。 二、題目 將

【資料結構週週練】012 利用佇列非遞迴演算法實現二叉樹的層次遍歷

一、前言 二叉樹的遍歷是比較多樣化的遍歷,有很多種遍歷方式,先序遍歷,中序遍歷,後序遍歷,層次遍歷等等。本次給大家講的是層次遍歷,為了方便,我將題目中的資料改為編號,從左往右,從上往下依次遍歷。方便大家看到結果。 二、題目 將下圖用二叉樹存入,並通過層次遍歷方式,自上而下,從左往右對

小象學院Python入門基礎課程-三、新建pycharm工程 create New Project+新增需要的第三方庫+映象推薦#直譯器缺失怎麼辦#整合檔案式命令列式程式設計

1.選擇新建一個Pure Python專案,新建專案路徑可以在Location處選擇。 2.Project Interpreter部分是選擇新建專案所依賴的python庫,第一個選項會在專案中簡歷一個venv(virtualenv)目錄,這裡存放一個虛擬的python環境。這裡所有

DijkstraPrime&Kruskal演算法小結

前言 講解這兩個經典演算法的博文已經汗牛充棟了,這裡再記錄一下自己學習的心得,歡迎指正。 Dijkstra 這是一個求某一個端點到其他所有端點的最短距離的演算法,有貪心加深搜演算法的特點。即在每一層都選現已知距離最短的點,確定下來,然後以此為基礎更新未確定距離的點,再進行下一

React Native整合Touch IDFace ID

前言: 使用Touch ID也稱為指紋身份驗證在移動應用程式中非常流行。Touch ID功能可保護應用程式並使其成為使用者的無縫身份驗證流程。 許多銀行應用程式,如美國銀行,發現,大通,使用Touch ID身份驗證,實現安全和無縫的身份驗證。 使用者無需在每次登入時鍵入長密碼,只

串的樸素演算法KMP模式匹配演算法

串的樸素演算法和KMP模式匹配演算法   串的樸素演算法 (BF演算法又稱暴力搜尋):首先待匹配串與模式串首先左對齊,然後從左向右開始逐個進行匹配,如果出現失配情況,則從待匹配串下一個字元開始進行匹配,直到模式串匹配成功。   例如:   &nb

嵌入式ARM處理器的7種整合開發環境6種JTAG偵錯程式

      嵌入式ARM處理器的7種整合開發環境和6種JTAG偵錯程式 7種整合開發環境 1.ADS(ARM Developer Suite) ADS由以下幾部分組成: (1)命令列開發工具:armcc、armcpp、tcc、tcpp、armasm、

位置式增量式PID演算法

一、PID框圖: 模擬的PID公式 u (

二叉樹的後序遍歷-遞迴非遞迴演算法

同樣的,建立的演算法在先序中有,略去。 後序遞迴遍歷演算法 void PostOrder(BiTree bt){ if(bt){ PostOrder(bt->lchild); PostOrder(bt->rchild); cout<<bt-

二叉樹的中序遍歷-遞迴非遞迴演算法

建立二叉樹就不說了,這裡直接: 中序遞迴遍歷演算法 void InOrder(BiTree T){ if(T){ InOrder(T->lchild); cout<<T->data<<" "; InOrder(T->rch