国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

在 Forge Viewer 里展示/隱藏構件材質

Dean / 1190人閱讀

摘要:對于大多數的模型文檔都可以透過服務提取轉換在里渲染構件外觀時所需的材質及貼圖。所以我們可以透過它遍歷所有材質,找出我們想隱藏貼圖的那些材質,將它的顏色設置為灰色,同時也可以透過它將隱藏貼圖的材質回復。

這篇文章來自 Autodesk ADN 的梁曉冬,以下以我簡稱。

對于大多數的模型文檔都可以透過 Autodesk Forge Model Derivative 服務提取、轉換在 Viewer 里渲染(Render)構件外觀時所需的材質(Material)及貼圖(Texture)。在 Viewer 里渲染這些材質是會耗損計算機內存(Memory)的,但有時候我們觀注的是構件的幾何信息,貼圖(Texture)反倒是可以被忽略的,但這要怎么做到呢?

在 Viewer API 里有一個函數matman()可以獲取 Viewer 的材質管理員,透過它可以取得所有 Viewer 自帶和自訂的材質。所以我們可以透過它遍歷所有材質,找出我們想隱藏貼圖的那些材質,將它的顏色設置為灰色,同時也可以透過它將隱藏貼圖的材質回復。

注:這個例子沒辦法在沒貼圖的材質上有作用;這范例在瀏覽器 Console 測試過,且使用默認的 Viewer 實例 NOP_VIEWER。

//store textures data
var oldTextures = new Array();
//store color data
var oldColors = new Array();

//remove texture
function hideTexture() {

    //get materials list
    var mats = NOP_VIEWER.impl.matman()._materials;

    //define a grey color
    var grey = new THREE.Color(0.5, 0.5, 0.5);

    //iterate materials 
    for (index in mats) {

        //index is the material name (unique string in the list)
        m = mats[index];

        //store texture info
        oldTextures[index] = m.map;
        oldColors[index] = m.color;

        //set the material without texture and the grey color
        m.map = null;
        m.color = grey;

        //mark the material dirty. The viewer will refresh
        m.needsUpdate = true; 
    }

    //refresh the scene
    NOP_VIEWER.impl.invalidate(true, true, false);
}

//show texture
function showTexture()
{
    //get materials list
    var mats = NOP_VIEWER.impl.matman()._materials;

    //iterate materials 
    for (index in mats) {

        //index is the material name (unique string in the list)

        m = mats[index];
 
       //restore
        m.map = oldTextures[index];
        m.color = oldColors[index];;
        m.needsUpdate = true; 
    }

    //refresh the scene

    NOP_VIEWER.impl.invalidate(true, true, false);

}

在隱藏貼圖前的樣子:

在移除貼圖后的樣子:

上述的例子我沒有在 Shader Material 上測試,或許有更有的辦法可行,我建議各位朋友們可以參考我同事發布的其他博客:

Using Shaders to Generate Dynamic Textures in the Viewer API

Ace Editor for Three.js ShaderMaterials in the Forge Viewer

Forge Viewer Custom Shaders - Part 1

Forge Viewer Custom Shaders - Part 2

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/88904.html

相關文章

  • 「翻譯」Forge Viewer上實作簡易的模型版本比較

    摘要:現在讓我們修改這個示例讓他可以展示兩個同項目但不同版號的模型及。示例執行結果如下這邊是這個比較模型的括展代碼英文原文 showImg(https://segmentfault.com/img/bVOmjp?w=1542&h=925); 熟悉 BIM360 Team 的朋友可能知道他有一個很牛的模型文檔版本比較的功能,但如果模型是放在 Google 云盤或是百度云盤上有可能做到嗎? Au...

    JowayYoung 評論0 收藏0
  • Forge Viewer 加入自訂義線

    摘要:可能有許多原因你想在里加入自訂義的線型,例如顯示線框幾何視覺化包圍箱或者其他你想帶給使用者的視覺回饋。下面是我傳寫的一個例子,他可以在選重構件后在場景里用自定義線型描繪它的包圍箱,在線示例可以參考這里 showImg(https://segmentfault.com/img/bVVaUx?w=1794&h=930); 這篇文章的原著是 Autodesk AND 的 Philippe L...

    zilu 評論0 收藏0
  • 自定義 Forge Viewer 右鍵菜單(Context Menu)

    摘要:前陣子有些圈的朋友們都在詢問同一個問題要怎么在的自帶右鍵菜單上添加自定義項目或是只顯示自訂義項目以下將針對在自帶右鍵菜單上添加自定義項目和只顯示自訂義項目的右鍵菜單進行說明。 前陣子有些 Autodesk Forge 圈的朋友們都在詢問同一個問題『要怎么在 Viewer 的自帶右鍵菜單上添加自定義項目或是只顯示自訂義項目』~ 以下將針對『在自帶右鍵菜單上添加自定義項目』和『只顯示自訂義...

    Harriet666 評論0 收藏0
  • Autodesk Forge Viewer 信息本地化技術分析

    摘要:默認情況下,是英文環境,調取的是的資源其實無需翻譯。但是,如前面提到的,語言包只是包含了部分常規字串的翻譯,如果遇到沒有包含的常規字串怎么辦呢例如,本例中的語言包并沒有對,進行翻譯,所以即使切換了語言,它們仍舊是英文。 注:本文是個人調試分析所得,非官方文檔,請酌情選用參考。文中分析的數據由https://extract.autodesk.io轉換下載而來。 談到信息本地化,個人覺得包...

    littleGrow 評論0 收藏0
  • Forge Viewer v3.2 攝像頭新事件 CAMERA_TRANSITION_COMPLET

    摘要:需要知道的攝像頭是不是已經不再移動或轉動了的朋友有福了,自此版號開始開始引入一個叫的事件,當攝像頭的完成后就會被觸發,它的使用方法如下注冊事件調用攝像頭聚焦的目前已知適用的情境回到默認視角相關的變動使攝像頭聚焦在構件上怖滿檢視整個模型透過回 需要知道 Forge Viewer 的攝像頭是不是已經不再移動或轉動了的朋友有福了,自此版號 3.2開始 Viewer 開始引入一個叫 Autod...

    frolc 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<