国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      一種基于內墻對象記錄器的3D房間紋理加載的系統(tǒng)和方法與流程

      文檔序號:11262054閱讀:161來源:國知局
      一種基于內墻對象記錄器的3D房間紋理加載的系統(tǒng)和方法與流程

      本發(fā)明涉及一種3d視覺技術,特別涉及一種基于內墻對象記錄器的3d房間紋理加載的系統(tǒng)和方法,尤其涉及對一個房間內某一墻面的紋理進行設置后,此房間內其他尚未設置紋理的墻面都復制加載此墻面的紋理。



      背景技術:

      在視覺設計技術中,尤其在3d房屋的設計領域中,人們需要時常對房間里的各個墻面的紋理進行設置,當前的視覺技術中,對一個房間內的尚未設置紋理的各個墻面,仍需要挨個設置紋理而導致操作成本高的問題。如現有的3d渲染引擎0pengl和direct3d等皆實現此挨個設置紋理技術方案。



      技術實現要素:

      1.發(fā)明要解決的技術問題

      針對現在技術所提及對一個房間內的未有紋理的墻面需要挨個設置紋理而導致操作成本高的問題,本發(fā)明提供了一種基于內墻對象記錄器的3d房間紋理加載的系統(tǒng)和方法,即公開了對一個房間內某一墻面的紋理進行設置后,此房間內其他尚未設置紋理的墻面都復制加載此墻面的紋理的方法。

      2.技術方案

      一種基于內墻對象記錄器的3d房間紋理加載的系統(tǒng),包括內墻對象記錄器、紋理設置器、紋理復制器和3d模型渲染器;

      內墻對象記錄器:負責以房間為單元并將同一個房間內的所有內墻對象按內墻對象數據模型進行記錄,記錄后的信息即為內墻對象數據模型信息;內墻對象數據模型信息包括:內墻對象標識(此標識為區(qū)別其他內墻的唯一標識,即通過此標識可以找到唯一一個內墻對象),房間標識(此標識記錄了此內墻所屬的房間,通過此標識可以找到唯一一個房間對象),以及紋理對象(此記錄紋理繪制所需的圖案信息);

      紋理設置器:負責從內墻對象記錄器中獲取內墻對象數據模型信息,并對此內墻對象的紋理進行設置,再將設置后的內墻對象數據模型信息傳輸給內墻對象記錄器,以更新對應的內墻對象數據模型信息;然后將設置后的內墻對象數據模型信息傳輸給紋理復制器;

      紋理復制器:負責從紋理設置器中獲取新設置(設置后)的內墻對象數據模型信息以及從內墻對象記錄器中獲取同一個房間內的其他內墻對象數據模型信息,并根據新設置的內墻對象中的紋理對房間內其他內墻對象進行紋理設置,再將設置后的內墻對象數據模型信息傳輸給內墻對象記錄器,以更新內墻對象數據模型信息;

      3d模型渲染器:負責根據內墻對象記錄器中的內墻對象數據模型信息中的紋理對象對對應的內墻進行紋理繪制;

      一種基于內墻對象記錄器的3d房間紋理加載的方法,其步驟包括:

      步驟1.初始化內墻數據模型。內墻對象記錄器以房間為單元并將同一個房間內的所有內墻的內墻對象數據模型進行記錄,記錄后的信息即為內墻對象數據模型信息;內墻對象數據模型信息包括但不限于:內墻對象標識(此標識為區(qū)別其他內墻的唯一標識,即通過此標識可以找到唯一一個內墻對象),房間標識(此標識記錄了此內墻所屬的房間,通過此標識可以找到唯一一個房間對象),紋理對象(此記錄了此內墻被設置的紋理圖案,如果紋理未被設置,則紋理對象為空值);

      步驟2.設置內墻的紋理。通過紋理設置器從內墻對象記錄器選取一個內墻對象,并對此內墻設置紋理,即更新內墻數據模型信息中的紋理對象信息,假設被設置后的新的紋理對象為texture_new,再將設置后的內墻對象數據模型信息傳輸給內墻對象記錄器,由內墻對象記錄器更新對應的內墻數據模型信息,即根據內墻對象標識和房間標識從內墻對象記錄器查找到唯一個內墻對象,并將查找到的內墻對象的紋理對象設置為texture_new;然后將設置后的內墻對象數據模型信息傳輸給紋理復制器;

      步驟3、更新單個內墻的數據模型信息:內墻對象記錄器從紋理設置器獲取更新后的對象數據模型信息,從根據對象數據模型信息中的內墻對象標識、房間標識查詢到唯一一個內墻對象,再將更新后的對象數據模型信息中的新紋理對象texture_new覆蓋此內墻對應的舊紋理對象;

      步驟4、復制內墻紋理。紋理復制器根據從紋理設置器中獲取被設置后的內墻對象數據模型信息,并根據此內墻對象數據模型信息中的房間標識從內墻對象記錄器中查找出與此房間標識相同的所有內墻對象數據模型信息,對這些被查出的內墻對象數據模型信息中所有的內墻對象標識與被設置后的內墻對象數據模型信息中的內墻對象標識進行比較,取與被設置后的內墻對象數據模型信息中的對象標識不相等的內墻對象數據模型信息,這些被過濾出的內墻對象數據模型信息即為與被設置的內墻對象屬于同一房間的所有其他內墻對象數據模型信息,即為內墻對象數據模型信息組,假設此被過濾出的內墻對象數據模型信息組為group_others,并將被過濾出的內墻對象數據模型信息組group_others中的所有內墻對象模型信息中的紋理對象挨個更新為新紋理對象texture_new,再將更新后的內墻對象數據模型信息組group_others傳輸給內墻對象記錄器;

      紋理復制的方案分為兩種,即過濾復制和全復制。這兩種技術方案是相互排斥的,在實施過程中任選其一即可。

      過濾復制,對內墻對象數據模型信息組group_others中的每個內墻對象的內墻數據模型信息中的紋理對象進行判斷,如果此內墻對象的紋理對象不為空值,即已經被設置了紋理,則不對此內墻對象的紋理對象進行設置;如果此內墻對象的紋理對象為空值,即沒有設置任何紋理,則將此內墻數據模型中的紋理對象信息更新為新紋理texture_new,再將設置后的內墻信息傳輸給內墻對象記錄器,以更新對應的內墻數據模型信息;

      全復制,將內墻對象數據模型信息組group_others中的每個內墻對象的內墻數據模型信息中的紋理對象信息更新為新紋理texture_new,再將設置后的內墻信息傳輸給內墻對象記錄器,以更新對應的內墻數據模型信息;

      步驟5、更新其他內墻的數據模型信息:內墻對象記錄器從紋理復制器中獲取更新后的內墻對象數據模型信息組group_others,從group_others中獲取每一個內墻對象數據模型信息,再對每個內墻對象數據模型信息的新紋理對象texture_new進行更新,更新單個內墻的數據模型信息參見步驟3;

      步驟6、繪制內墻紋理。3d模型渲染器根據內墻對象記錄器中的內墻對象數據模型信息,并從內墻對象數據模型信息中獲取紋理對象,然后根據此紋理對象對對應的內墻進行紋理繪制(紋理繪制的具體技術方案在現有技術中已有公開,本發(fā)明不再贅述);

      上述的步驟6與步驟2或者步驟4沒有嚴格的先后次序。

      3.有益效果

      在3d房屋的設計領域中,人們需要時常需要對房間里的各個墻面的紋理進行設置,當前對一個房間內的尚未設置紋理的墻面需要挨個設置紋理而導致操作成本高的問題。本發(fā)明公開一種內墻對象記錄器的3d房間紋理加載的系統(tǒng)和方法的突出效果體現在:

      本發(fā)明提供了內墻對象記錄器,以房間為單元將各內墻建立一個整體的信息模型,即將一個房間內的所有內墻對應的內墻對象數據模型進行記錄,使得當對任意一個內墻對象對紋理設置時都可以查找到同一房間內其他所有的內墻對象數據模型,解決了現有技術中各墻內墻相互孤立的紋理設置問題;

      本發(fā)明提供了紋理復制器,即通過對房間內某一內墻進行一次紋理設置,房間其他內墻紋理同步復制的技術方案,解決了現有技術中需要對各墻內墻進行紋理挨個設置問題;

      本發(fā)明提供了紋理復制器,即通過對房間內的內墻對象數據模型的紋理對象進行過濾復制,解決了現有技術中對已有紋理的直接覆蓋的問題;

      綜上,本發(fā)明提供了一種基于內墻對象記錄器的3d房間紋理加載的系統(tǒng)和方法,實現了對一個房間內某一墻面的紋理進行設置后,此房間內其他尚未設置紋理的墻面都復制加載此墻面的紋理的方法,很好地解決了對一個房間內的尚未設置紋理的墻面需要挨個設置紋理而導致操作成本高的問題。

      附圖說明

      圖1為基于內墻對象記錄器的3d房間紋理加載的系統(tǒng)示意圖。

      圖2為基于內墻對象記錄器的3d房間紋理加載方法的模塊設計圖。

      具體實施方式

      下面結合附圖對本發(fā)明做進一步的詳細說明,以令本領域技術人員參照說明書文字能夠據以實施,如圖1和圖2所示:一種基于內墻對象記錄器的3d房間紋理加載的系統(tǒng),包括內墻對象記錄器、紋理設置器、紋理復制器和3d模型渲染器;其中內墻對象記錄器負責以房間為單元并將同一個房間內的所有內墻對象按內墻對象數據模型進行記錄,記錄后的信息即為內墻對象數據模型信息;內墻對象數據模型信息包括:內墻對象標識(此標識為區(qū)別其他內墻的唯一標識,即通過此標識可以找到唯一一個內墻對象),房間標識(此標識記錄了此內墻所屬的房間,通過此標識可以找到唯一一個房間對象),以及紋理對象(此記錄紋理繪制所需的圖案信息);

      紋理設置器負責從內墻對象記錄器中獲取內墻對象數據模型信息,并對此內墻對象的紋理進行設置,再將設置后的內墻對象數據模型信息傳輸給內墻對象記錄器,以更新對應的內墻對象數據模型信息;然后將設置后的內墻對象數據模型信息傳輸給紋理復制器;

      紋理復制器負責從紋理設置器中獲取新設置(設置后)的內墻對象數據模型信息以及從內墻對象記錄器中獲取同一個房間內的其他內墻對象數據模型信息,并根據新設置的內墻對象中的紋理對房間內其他內墻對象進行紋理設置,再將設置后的內墻對象數據模型信息傳輸給內墻對象記錄器,以更新內墻對象數據模型信息;

      3d模型渲染器負責根據內墻對象記錄器中的內墻對象數據模型信息中的紋理對象對對應的內墻進行紋理繪制。

      一種基于內墻對象記錄器的3d房間紋理加載的方法,其步驟為:

      步驟1.初始化內墻數據模型。內墻對象記錄器以房間為單元并將同一個房間內的所有內墻的內墻對象數據模型進行記錄,記錄后的信息即為內墻對象數據模型信息;內墻對象數據模型信息包括但不限于:內墻對象標識,此標識取值可以但不限于整數型或者字符型;房間標識,此標識取值可以但不限于整數型或者字符型;紋理對象,此記錄了此內墻被設置的紋理圖案,如果紋理未被設置,則紋理對象為空值,例如,假設一個房子有3個房間,每個房間有4面內墻,則內墻對象記錄器遍歷每個房間,并分配房間標識分別為“房間1”、“房間2”以及“房間3”,再分別對每個房間遍歷所有的內墻,并分配內墻對象標識分別為“內墻1”、“內墻2”、“內墻3”、“內墻4”,通過房間標識以及內墻標識可以唯一找到對應的內墻對象數據模型信息;以房間為單元的內墻對象數據模型信息的存儲可以但不限于鏈表或者數組;

      步驟2.設置內墻的紋理。一般通過人工對3d模型中的內墻對象進行更新紋理操作而觸發(fā),由紋理設置器捕獲到被操作的內墻對象數據模型信息然后通過紋理設置器從內墻對象記錄器選取對應的被操作的內墻對象數據模型信息,并對此內墻對象數據模型信息中的紋理對象進行設置,假設被設置后的新的紋理對象為texture_new,再將設置后的內墻對象數據模型信息傳輸給內墻對象記錄器,以更新對應的內墻對象數據模型信息,具體為:根據內墻對象標識和房間標識從內墻對象記錄器查找到唯一個內墻對象數據模型信息,并將查找到的內墻對象數據模型信息中的紋理對象設置為texture_new;然后將設置后的內墻對象信息傳輸給紋理復制器;

      步驟3、更新單個內墻的數據模型信息:內墻對象記錄器從紋理設置器獲取更新后的對象數據模型信息,從根據對象數據模型信息中的內墻對象標識、房間標識查詢到唯一一個內墻對象,再將更新后的對象數據模型信息中的新紋理對象texture_new覆蓋此內墻對應的舊紋理對象;

      步驟4.復制內墻紋理。紋理復制器根據從紋理設置器中獲取被設置后的內墻對象數據模型信息,并根據此內墻對象中的房間標識從內墻對象記錄器中查找出與此房間標識相同的所有內墻對象數據模型信息,對這些被查出的內墻對象數據模型信息中的內墻對象標識與被設置后的內墻對象數據模型信息中的內墻對象標識進行比較,取與被設置后的內墻對象數據模型信息中的內墻對象標識不相等的內墻對象數據模型信息,這些被過濾出的內墻對象數據模型信息即為與被設置的內墻對象數據模型信息屬于同一房間的所有其他內墻對象數據模型信息,即為內墻對象數據模型信息組,假設此被過濾出的內墻對象數據模型信息組為group_others。對內墻對象數據模型信息組group_others進行紋理復制的方案分為兩種,即過濾復制和全復制。這兩種技術方案是相互排斥的,在實施過程中任選其一即可。假設,對房間1中的內墻1的內墻對象數據模型信息的紋理進行設置,則group_others包括房間1中的內墻2、房間1中的內墻3、房間1中的內墻4的內墻對象數據模型信息;

      過濾復制,對內墻對象數據模型信息組group_others中的每個內墻對象的內墻對象數據模型信息中的紋理對象進行判斷,如果此紋理對象不為空值,則不對此內墻對象數據模型信息中的紋理對象進行設置;如果此內墻對象數據模型信息中的紋理對象為空值,則將此內墻數據模型中的紋理對象更新為新紋理texture_new,再將設置后的內墻對象數據模型信息傳輸給內墻對象記錄器,以更新對應的內墻數據模型信息,即根據內墻對象標識和房間標識從內墻對象記錄器查找到唯一個內墻對象,并將查找到的內墻對象的紋理標識設置為texture_new;假設,房間1中的內墻2的原有的內墻對象數據模型信息中的紋理對象不為空,房間1中的內墻3、房間1中的內墻4的原有內墻對象數據模型信息中的紋理對象為空,則過濾后的內墻對象數據模型信息包括房間1中的內墻3、房間1中的內墻4;

      全復制,將內墻對象數據模型信息組group_others中的每個內墻對象的內墻對象數據模型中的紋理對象信息更新為新紋理texture_new,再將設置后的內墻對象數據模型信息傳輸給內墻對象記錄器,以更新對應的內墻數據模型信息,即根據內墻對象標識和房間標識從內墻對象記錄器查找到唯一個內墻對象數據模型信息,并將查找到的內墻對象的紋理標識設置為texture_new;

      步驟5、更新其他內墻的數據模型信息:內墻對象記錄器從紋理復制器中獲取更新后的內墻對象數據模型信息組group_others,從group_others中獲取每一個內墻對象數據模型信息,再對每個內墻對象數據模型信息的新紋理對象texture_new進行更新,更新單個內墻的數據模型信息參見步驟3;

      步驟6.繪制內墻紋理。3d模型渲染器根據內墻對象記錄器中的內墻對象數據模型信息,并根據其內墻對象數據模型信息中的紋理標識查詢對應的紋理對象,然后根據此紋理對象對對應的內墻進行紋理繪制。

      當前第1頁1 2 
      網友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1