zoukankan      html  css  js  c++  java
  • 3D制作魔方

    从10号开始做这个东西,是一边学习一边做的,学了DXUT框架、拾取技术(DX提供的、别人写的算法和用外接球模拟)

    先说一下还要改进的地方:

    1、无论先点哪一个方块,都按照程序设定的去转

    2、光照问题:转了之后变暗

    3、内存泄露(这个找了很久都没找到,我估计是DXUT框架的,汗)

    设计思路:

    1、渲染:设定27个世界矩阵,逐个渲染,用一个mesh,改变世界矩阵

    2、拾取:采用内接球,用外接球的话会有相交的部分,但内接球无法判断一些区域

    3、旋转:严格符合十字架的点击才能旋转

                保存世界矩阵的一个副本,到旋转完90°的时候,用副本乘上90°的矩阵可以避免不完全旋转90°

                坐标改变是用DX提供的函数D3DXVec3TransformCoord()

    4、用3DS MAX做模型时把box的中心移动原点,方便操作

    技术上遇到的但还没掌握的技术:

    1、没有看DXUT提供的camera类。DXUT有3个camera类

    2、还没有找到DXUT框架中是在哪里初始化一个IDirect3DDevice9的指针的

    3、没有理解回调函数

    以后准备添加的功能: 

    1、可以后退,就是退回上一步,这个用链式栈解决

    2、随机弄乱魔方,让玩家做回原状 ,这个也是用链式栈,魔方的操作有18种,随机产生其中一种,然后添加到栈顶,这个可以利用第一种功能

    3、提示功能。这个功能可以用来当做视频教学,一个一个出栈就行了 

    4、记录时间,这个简单

    5、添加局域网对战(世荣说过,现在只是想一下,还没学过网络) 

    6、某女生玩家提出可以自选6中颜色 

    文件下载:Magic_Cube.rar

  • 相关阅读:
    [转载]Quartus ii 一些Warning/Eeror分析与解决
    [转载]MAC、IP头、TCP头、UDP头帧格式、详解
    [转载]关于晶振ppm
    20140919-FPGA-有效观察设计中的差分信号
    [转载]转一篇Systemverilog的一个牛人总结
    [转载]ISE中COE与MIF文件的联系与区别
    linux系统性能监控--I/O利用率
    linux系统性能监控--内存利用率
    linux系统性能监控--CPU利用率
    在linux系统中I/O 调度的选择
  • 原文地址:https://www.cnblogs.com/littlethank/p/1782640.html
Copyright © 2011-2022 走看看