博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
在 Forge Viewer 里展示/隐藏构件材质
阅读量:5875 次
发布时间:2019-06-19

本文共 1752 字,大约阅读时间需要 5 分钟。

这篇文章来自 Autodesk ADN 的梁晓冬,以下以我简称。

对于大多数的模型文档都可以透过 Autodesk Forge Model Derivative 服务提取、转换在 Viewer 里渲染(Render)构件外观时所需的材质(Material)及贴图(Texture)。在 Viewer 里渲染这些材质是会耗损计算机内存(Memory)的,但有时候我们观注的是构件的几何信息,贴图(Texture)反倒是可以被忽略的,但这要怎么做到呢?

在 Viewer API 里有一个函数matman()可以获取 Viewer 的材质管理员,透过它可以取得所有 Viewer 自带和自订的材质。所以我们可以透过它遍历所有材质,找出我们想隐藏贴图的那些材质,将它的颜色设置为灰色,同时也可以透过它将隐藏贴图的材质回复。

注:这个例子没办法在没贴图的材质上有作用;这范例在浏览器 Console 测试过,且使用默认的 Viewer 实例 NOP_VIEWER。

//store textures datavar oldTextures = new Array();//store color datavar oldColors = new Array();//remove texturefunction 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 texturefunction 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 上测试,或许有更有的办法可行,我建议各位朋友们可以参考我同事发布的其他博客:

转载地址:http://zpkix.baihongyu.com/

你可能感兴趣的文章
TTS
查看>>
junit4 组合测试
查看>>
Exchange 2010 CC BCC
查看>>
php编译后追加库模块-gd库
查看>>
我的友情链接
查看>>
我的友情链接
查看>>
我的友情链接
查看>>
数据结构之树和二叉树(二)
查看>>
zabbix 3.2 监控Windows 实时内存使用率与CPU使用率
查看>>
oracle 11g常用命令
查看>>
MAVEN指南-5、常用插件解析
查看>>
PDFOA文件格式转换器,给你繁忙的工作降降温
查看>>
Spring MVC 获取静态资源处理方案学习总结
查看>>
我的友情链接
查看>>
xgboost 安装失败
查看>>
LIN总线概要
查看>>
消息模式Toast.makeText的几种常见用法
查看>>
Infobright高性能数据仓库特点
查看>>
通知栏Notification在不同手机上显示的问题总结
查看>>
bootstrap下拉菜单
查看>>