zoukankan      html  css  js  c++  java
  • 场景编辑器竣工!

    今天接着做XML解析,对那个遍历的结构作了些修改,插入了几个函数。
    终于,新的场景编辑器竣工了!

    一个比较复杂的场景了,用3dsMax制作材质,安排物件位置和所用材质
    导出到DirectX中,效果感觉比Max中好啊~
    得益于我的后期和ShadowMap啊!

    3dsMax中编辑场景
    应用了自写shader和scene effect

    再来个局部效果

    效果相当不错了,并且和上学期制作的场景编辑器不同,这次是自动解析使用的x文件,使用的材质文件,自动的解析每个物体使用哪一个材质。完全自动,开放性的设计为以后想要加入新的模型,为模型使用不同的材质做了充分准备。场景编辑器的代码基本上就固定下来了,不用再作变动。

    不过在保存材质和模型时,还是存在一些不方便。需要在x文件导出插件中作不同的设置,不过目前的时间已经不够再让我做一个类似pander的简化导出插件了,只好写一个使用文档凑活用了~

    下面配上这个场景所使用的test.xml,希望对大家有所启发。具体的解析实现碍于篇幅就不在这里写了。

    代码
    1. <?xml version="1.0" encoding="utf-8" ?>
    2.
    3.
    <IGame xmlns="urn:maxxml" Version="2.0" Date="Tue May 25 15:19:46 2010">
    4.
    5.
    <SceneInfo FileName="levelDesignBeta.max" StartFrame="0" EndFrame="100" FrameRate="30" TicksPerFrame="160" CoordinateSystem="directx" RotationFormat="Quaternion" ObjectSpace="false"></SceneInfo>
    6.
    7.
    <MaterialList Count="9">
    8.
    9.
    <Material Index="0" Name="ksMat_ToonBag" Class="DirectX Shader"></Material>
    10.
    11.
    <Material Index="1" Name="ksMat_ToonBookOpen" Class="DirectX Shader"></Material>
    12.
    13.
    <Material Index="2" Name="ksMat_ToonFlower" Class="DirectX Shader"></Material>
    14.
    15.
    <Material Index="3" Name="ksMat_ToonPBoxA" Class="DirectX Shader"></Material>
    16.
    17.
    <Material Index="4" Name="ksMat_ToonTerrian" Class="DirectX Shader"></Material>
    18.
    19.
    <Material Index="5" Name="ksMat_ToonRed" Class="DirectX Shader"></Material>
    20.
    21.
    <Material Index="6" Name="ksMat_ToonBlue" Class="DirectX Shader"></Material>
    22.
    23.
    <Material Index="7" Name="ksMat_ToonGreen" Class="DirectX Shader"></Material>
    24.
    25.
    <Material Index="8" Name="ksMat_ToonTank" Class="DirectX Shader"></Material>
    26.
    27.
    </MaterialList>
    28.
    29.
    <Object Name="bagA.x 01" NodeID="638" MaterialIndex="0">
    30.
    31.
    <Translation>
    32.
    33. 50.900787 21.874781 28.437721
    34.
    35.
    </Translation>
    36.
    37.
    <Rotation>
    38.
    39. 0.000000 0.781607 0.000000 0.623771
    40.
    41.
    </Rotation>
    42.
    43.
    <Scale>
    44.
    45. 1.000000 1.000000 1.000000 -0.000000 -0.000000 -0.000000 1.000000
    46.
    47.
    </Scale>
    48.
    49.
    </Object>
    50.
    51.
    <Object Name="Bookclose.x 01" NodeID="639" MaterialIndex="1">
    52.
    53.
    <Translation>
    54.
    55. -28.488480 1.558182 -58.162262
    56.
    57.
    </Translation>
    58.
    59.
    <Rotation>
    60.
    61. -0.000000 0.352962 -0.000000 0.935638
    62.
    63.
    </Rotation>
    64.
    65.
    <Scale>
    66.
    67. 1.000000 1.000000 1.000000 -0.000000 -0.000000 -0.000000 1.000000
    68.
    69.
    </Scale>
    70.
    71.
    </Object>
    72.
    73. ...
    74. ...
    75. ...
    76.
    77.
    </IGame>
    1. 相关阅读:
      svn导入项目和部署方面的相关问题
      JDK版本会影响项目部署
      在HTML中限制input 输入框只能输入纯数字
      mui-下拉刷新
      抽象工厂模式(Abstract Factory)C#实例
      C++基础-结构体伪函数与多线程(void operator()(int))
      Android基础-Activity生命周期
      Android基础-Adapter适配器生成对话框
      Android基础-弹窗对话框(popup)
      Android基础-自定义对话框
    2. 原文地址:https://www.cnblogs.com/gameknife/p/1832161.html
    Copyright © 2011-2022 走看看