三维虚拟互动技术

本人专注于计算机三维虚拟互动技术领域,希望能与广大的朋友进行技术交流、项目合作。为您提供最完善、最先进的技术服务和最广泛、最理想的产品。
posts - 10, comments - 65, trackbacks - 0, articles - 0

导航

公告

开发3dMax插件的方法和应用

Posted on 2007-08-13 14:07 dscky 阅读(...) 评论(...) 编辑 收藏
    在三维虚拟互动场景中,存在着由大量的静止物件构成的背景。如室内场景中的桌子、墙壁、壁饰等。室外场景中的楼房、马路、草坪等。这些通常是由建模软件构建好之后,再导入场景中的。常用的建模软件如Max、Maya都提供了SDK以快速开发导出插件,来导出这些物件的位置、材质、光照以及其它信息。在我的应用中,利用Max的SDK开发了两个版本的插件,分别导出不同的内容以供渲染使用。
    场景导出dle插件导出的信息包括:相机、光源、几何体、单位、背景等信息。几何体信息包括:位置、法向量、纹理坐标、材质和纹理等信息。支持Max中包括:Stand、BakeShell、Multi/Sub-object、Blend、Matte/Shadow、Double Sided、Composite、Top_Bottom等8种材质和bitmap、Mask、Checker、Marble 3D、Mix、Noise、Gradient、Tint、Reflect/refract、Flat mirror、Composite、RGB Multiply、Falloff、Output、Plate glass、Vertex Color等16种纹理信息的导出。
    动画导出dlu插件导出的信息包括:相机动画、轨迹动画、Bezier/TCB/采样关键帧动画、Bone/Physique骨骼动画、逐帧动画。
    使用插件导出场景后,渲染的示意图如下:
             
                         场景渲染图一                                                                 场景渲染图二

   
                        关键帧动画渲染图                                                             骨骼动画渲染图

    开发Max插件,通常的做法就是阅读SDK Help和SDK sample的示例代码以及AutoDesk的官方帮助网站。对于导出插件而言,这些就足够了。再根据自己项目的需要,有针对性的做一些研究就够了。这里需要注意的几点是:1,场景导出后,根据Max坐标系和渲染使用的坐标系之间的不同,进行相应的坐标转换。2,最好同时导出相机信息和单位信息,这样,在显示和合并场景时,就不会出现有些物件忽大忽小,或者压根就看不见的情况。3,物件相应的文件,如:几何物件的材质、纹理文件,最好打包后随身携带。以免显示时,因文件丢失而显示错误。
    下面给出一些链接和一些资料(文件大小限制,不能提供更多资料,另外,还有一本《如何使用3ds sdk开发程序》的超星格式电子书,有需要的请跟我联系)。希望对大家有所帮助。
    开发资料链接:http://kniffo.maxscript.de/tut/3dsmax_plugin/
                  http://sparks.autodesk.com/
                  http://sparks.autodesk.com/search/  搜索 How To Write An Exporter
    开发资料下载:http://files.cnblogs.com/dscky/MaxSdkDev.rar