如何使用 LMV Toolkit 规范或 Autodesk 材质库材质显示非光照材质 + 纹理?

Posted

技术标签:

【中文标题】如何使用 LMV Toolkit 规范或 Autodesk 材质库材质显示非光照材质 + 纹理?【英文标题】:How Do I Display Non-Lit Material + Texture Using LMV Toolkit Specification or a Autodesk Material Library Material? 【发布时间】:2019-06-03 13:54:43 【问题描述】:

如果没有查看器对其应用照明效果,我无法成功显示模型+纹理贴图。 我正在使用查看器的本地化版本来调查问题,但我欢迎 Autodesk 材料库设置解决方案(如果存在)。

这是我希望如何查看材质的示例,即没有镜面反射,没有反射(忽略此示例在 three.js 中的事实):https://stemkoski.github.io/Three.js/Texture-Repeat.html

这是我的问题的一个例子:https://myhub.autodesk360.com/ue29c31db/g/shares/SHabee1QT1a327cf2b7a7879b97973545818?viewState=NoIgbgDAdAjCA0IBGMAsBmATAMwKYBMBaCAQwHYBjQ1fATlUNt13UO1pIwDYZMAOTCVogAukA 我尝试了许多不同的“Autodesk 材质库”设置,包括增加“自发光”,但是,纹理要么无法加载和/或光泽仍然存在。 可以调整 Materials.json 来解决这个问题吗? 这是我的 Materials.json


    "name": "LMVTK Simple Materials",
    "version":  "1.0",
    "scene":    
        "SceneUnit":    8214,
        "YIsUp":    2
    ,
    "materials":    
        "0":    
            "version":  2,
            "userassets":   ["0"],
            "materials":    
                "0":    
                    "tag":  "0",
                    "proteinType":  "",
                    "definition":   "SimplePhong",
                    "properties":   
                        "integers": 
                            "mode": 4
                        ,
                        "booleans": 
                            "color_by_object":  false,
                            "generic_is_metal": false,
                            "generic_backface_cull": false
                        ,
                        "scalars":  
                            "generic_transparency": 
                                "units":    "",
                                "values":   [0]
                            
                        ,
                        "colors":   
                            "generic_diffuse":  
                                "values":   [
                                        "r":    1,
                                        "g":    1,
                                        "b":    1,
                                        "a":    1
                                    ]
                                                       
                        
                    ,
                    "transparent":  false,
                    "textures": 
                        "generic_diffuse":  
                            "connections":  ["1_generic_diffuse"]
                        
                    
                ,
                "1_generic_diffuse":    
                    "tag":  "0",
                    "definition":   "UnifiedBitmap",
                    "properties":   
                        "scalars":  
                            "unifiedbitmap_RGBAmount":  
                                "units":    "",
                                "values":   [1]
                            
                        ,
                        "uris": 
                            "unifiedbitmap_Bitmap": 
                                "values":   ["image0.jpg"]
                            
                        ,
                        "booleans": 
                            "texture_URepeat":  true,
                            "texture_VRepeat":  true,
                            "unifiedbitmap_Invert": false
                        ,
                        "integers": 
                            "texture_MapChannel":   1
                        
                    
                
            
        
    





【问题讨论】:

【参考方案1】:

我建议尝试这种方法。从字面上绕过 LMV 材质(它们都受光照影响)并使用不受光照影响的自定义三种材质。您可能还需要创建自定义着色器。

从这个开始... https://forge.autodesk.com/cloud_and_mobile/2016/02/custom-transparent-meshes-with-view-data-api.html

让我知道这是否能解决问题,如果没有,我可以进一步深入研究。

最好的,迈克尔

【讨论】:

感谢 Michael 的回答,链接中描述的圈子的代码应该插入到哪里? 对于几何体,使用 renderProxy 对象并将材质应用于该对象。这是一篇更好的博文,描述了我的意思...forge.autodesk.com/blog/showhide-textures-object-forge-viewer 和我提到的客户着色器(为了获得平面照明),你可以关注这篇博文:forge.autodesk.com/blog/forge-viewer-custom-shaders-part-1

以上是关于如何使用 LMV Toolkit 规范或 Autodesk 材质库材质显示非光照材质 + 纹理?的主要内容,如果未能解决你的问题,请参考以下文章

对比测试LM358, LMV358双运放基本参数,测试之后发现是假货

测试购买到的LMV358 DIP-8封装的芯片特性

LMV实验

如何在 Template::Toolkit 中分析模板性能?

如何在VS2010或VS2008下编译一个CUDA Toolkit 4.0 RC2程序?

使用 Redux Toolkit 异步 REST API 模式时如何捕获 HTTP 4xx 错误?