热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Direct3D如何建立一个立方体然后把我的ViewPoint放到里面!我给300分

我要用Direct3D建立一个虚拟的屋子,然后把我的视角放到屋子里面,并且可以水平旋转,就象是虚拟现实空间那样。其实就跟DOOM类游戏一样。并且能够用PICK函数去选取在指定点
我要用Direct3D 建立一个 虚拟的屋子,然后把我的 视角放到屋子里面,并且可以水平旋转,就象是虚拟现实空间那样。
    其实就跟DOOM类游戏一样。并且能够用PICK 函数 去选取 在指定点 上对应的物件。
    谁有 类似的代码,我给300分,说话算数。

25 个解决方案

#1


。。

#2


IM or RM?

#3


IM or RM? 
??????????????????

#4


..

#5


我是说你要用哪种模式,Retained mode or Immediate mode?
DX7 or DX8?

#6


to:Viper() 
DX7 大哥可有代码否!! 
多谢了! 
t.ye@263.net
有相关的文章,网址,书籍也行。
我这两天一直在 网是找相关的资料,头都快要大了。

 

#7


建议你去装一个DX7SDK,里面有很多精彩例子,会找到你所需要的。
我不知道你是否有图形学的基础,D3DIM真是太困难了。:-(

至于PICK的实现,可以装一个DX8SDK,里面有一个例子专门讲这个。

老实说DirectX编程极度缺乏资料,最最宝贵的就是SDK文档了。
仔细研究其中的例子,你会大有收获的。请相信,这是一个过来人的体会。

#8


非常感谢!! 
我回去看看!!
说老实话,我已经装了,DX8SDK可惜 不能用 不知道是 怎么回事,找不到D3D8.DLL 我把别人的拷贝过来,可是还是 不能用。 晕啊! 要不就是 我们公司的这套东西太烂。

#9


非常感谢!! 
我回去看看!!
说老实话,我已经装了,DX8SDK可惜 不能用 不知道是 怎么回事,找不到D3D8.DLL 我把别人的拷贝过来,可是还是 不能用。 晕啊! 要不就是 我们公司的这套东西太烂。

#10


安装完SDK之后,要在VC中设置一下目录属性,以便能引入相应的.H档和.lib档。

Tools-->Options...-->Directories-->

我想你是这个没设吧。

#11


不是 这个问题,我还没有面到连这个都不明白。
而是我的 机子里 根本就没有 D3D8.DLL 这个函数,我重装 也没戏。
受不了了,我还是去找DX7 SDK 装算了。
关于 PICK 的例子我 找到了。
我现在的问题 是如何 解决 把我的 camera 放到我建立的屋子里去,还有就是怎么把我的 墙壁 用我的图片从里面贴上去。 我看过一个 类似的例子,也是 微软的, 从外面看  一个立方体 转动,但是一但我把我的 camera  放到里面去,发现 里面的墙壁的  黑色的。这才是我 真正头痛的东西。 
不知Viper 老兄 有什么好的建议啊。

#12


错了 是 没有D3D8.DLL  这的动态库

#13


错了 是 没有D3D8.DLL  这的动态库

#14


真奇怪,你不会是没装directX8 run time吧?按理说装sdk时就应该装上的呀,我在winME和w2k下都装过,no problem! 
你说的那个问题是因为direct3d默认只渲染triangle的正面(法向量为正),如果你的模形是在程序中生成的,那triangle的顶点顺序一定要正确,平面的法向量的方向跟顶点的顺序是有关系的,如果是在建模软件中生成的,那干脆为你的正方体里面加一层“里子”(我对建模软件不熟,不知道怎样做出一个正面朝里的正方体),我们做过的一个项目就是这样的(室内游览,反正墙有两个面也是应该的)

#15


我也care

#16


to:rocks_lee(石子儿)
多谢  你说的很是,我有点开窍了。
你做个这个 室内浏览 把你的代码给我好吗,我给你300分。
 

#17


哈哈,不好意思,那个项目是毕设做的,代码留在学校了,手头没有。
你可以看看DX sample里的D3DRM->Direct3D RM Viewer, 我的那个程序实际就是它的一个简化版(不过有自己设计的碰撞检测算法:)

#18


说老实话,我到现在都不知道你用的是哪种模式?
从你的话‘camera'来看,应该是RM了,不过这种东东在DX8中已经淘汰了。

至于你的问题,应该是法向量的问题,
也可以用SetRenderState( D3DRENDERSTATE_CULLMODE, D3DCULL_NONE );
来解决。

至于在屋内的例子,应该有很多才对,你可能没仔细看!
比如D3DIM Samples中的Lightmap,这是很经典的一个例子,
光线映射贴图.

如果真要学3D,我建议使用IM,毕竟这才是真正的3D,不过有点烦:-)

#19


我写了一些例子,如果你想学IM的话,可以和我联系。
RM的我就没有了。

OICQ:31731705
Mail:Bo.Snake@tomor.com.cn or brsy@263.net or lovebr@126.com

#20


多谢 Viper() 和rocks_lee(石子儿) 
我又看到神仙了。
对于 Direct3D 我才刚开始看,看的书 和例子 都是保留模式的。
主要是为了应付一个烂项目,下个礼拜我去看 立即模式的。
to: Viper()  你说的那些 DX7 SDK 下的例子我看了,但是 我想建立工程 自己调试一下, 就出问题了,主要是微软的 例子代码 做的太简洁了,我实在是懒的 自己去一个一个 cpp 的去添加。
   如果你已经 做好的例子(IM) 我要 我要,我会把决大部分 分加给你的。 
   t.ye@263.net 

#21


不会啊,一般来说SDK中的例子都只有一两个文件(xxxMain.cpp等),只要在Tools->Options->Directories中将其对应库(.h , .lib, .cpp)加入就可以编译了,
我也做过几个D3D的程序,等到能实现一定功能的时候代码也是一大堆,所以就如Viper大哥所说,看看SDK的例子就可以了,而且其中的注释也很详细

#22


OK,那是我初学D3DIM时作的一个例子,很不完善,可能还有些bug。
不过可以作为一个参考。

这个例子画了7个球,类似于一棵树,上面是根,Left Mouse button 作水平动作,Right mouse button 作vertical action。就这么简单。

我已经用RAR压缩过了。

#23


建议您访问www.etechbase.net/tech,里面有很多资料,也许可以解决您的问题。
访问http://168.168.18.11:81/etechbase/advsearch.php将您的问题输入查询内容框,选择不同的精确程度,即可以找到你所需要的答案。效果还是可以的。 

#24


多谢诸位神仙了!!
尤其是 Viper()
我去看代码了。
说话算数 我这就加分 

#25


to:Viper()  
一次给 不出 300分!! 我又开了一个帖子 省下的40分 在那里给你!! 你去登记就是了。

推荐阅读
  • 优化ListView性能
    本文深入探讨了如何通过多种技术手段优化ListView的性能,包括视图复用、ViewHolder模式、分批加载数据、图片优化及内存管理等。这些方法能够显著提升应用的响应速度和用户体验。 ... [详细]
  • 1:有如下一段程序:packagea.b.c;publicclassTest{privatestaticinti0;publicintgetNext(){return ... [详细]
  • 本文详细介绍了 Dockerfile 的编写方法及其在网络配置中的应用,涵盖基础指令、镜像构建与发布流程,并深入探讨了 Docker 的默认网络、容器互联及自定义网络的实现。 ... [详细]
  • Python自动化处理:从Word文档提取内容并生成带水印的PDF
    本文介绍如何利用Python实现从特定网站下载Word文档,去除水印并添加自定义水印,最终将文档转换为PDF格式。该方法适用于批量处理和自动化需求。 ... [详细]
  • 非公版RTX 3080显卡的革新与亮点
    本文深入探讨了图形显卡的进化历程,重点介绍了非公版RTX 3080显卡的技术特点和创新设计。 ... [详细]
  • 深入解析Android自定义View面试题
    本文探讨了Android Launcher开发中自定义View的重要性,并通过一道经典的面试题,帮助开发者更好地理解自定义View的实现细节。文章不仅涵盖了基础知识,还提供了实际操作建议。 ... [详细]
  • 本文将介绍如何编写一些有趣的VBScript脚本,这些脚本可以在朋友之间进行无害的恶作剧。通过简单的代码示例,帮助您了解VBScript的基本语法和功能。 ... [详细]
  • 本文详细介绍了如何在Linux系统上安装和配置Smokeping,以实现对网络链路质量的实时监控。通过详细的步骤和必要的依赖包安装,确保用户能够顺利完成部署并优化其网络性能监控。 ... [详细]
  • 本文详细探讨了Java中的24种设计模式及其应用,并介绍了七大面向对象设计原则。通过创建型、结构型和行为型模式的分类,帮助开发者更好地理解和应用这些模式,提升代码质量和可维护性。 ... [详细]
  • 1.如何在运行状态查看源代码?查看函数的源代码,我们通常会使用IDE来完成。比如在PyCharm中,你可以Ctrl+鼠标点击进入函数的源代码。那如果没有IDE呢?当我们想使用一个函 ... [详细]
  • 本文详细介绍了如何使用 Yii2 的 GridView 组件在列表页面实现数据的直接编辑功能。通过具体的代码示例和步骤,帮助开发者快速掌握这一实用技巧。 ... [详细]
  • 深入理解C++中的KMP算法:高效字符串匹配的利器
    本文详细介绍C++中实现KMP算法的方法,探讨其在字符串匹配问题上的优势。通过对比暴力匹配(BF)算法,展示KMP算法如何利用前缀表优化匹配过程,显著提升效率。 ... [详细]
  • PHP 5.2.5 安装与配置指南
    本文详细介绍了 PHP 5.2.5 的安装和配置步骤,帮助开发者解决常见的环境配置问题,特别是上传图片时遇到的错误。通过本教程,您可以顺利搭建并优化 PHP 运行环境。 ... [详细]
  • 解决PHP与MySQL连接时出现500错误的方法
    本文详细探讨了当使用PHP连接MySQL数据库时遇到500内部服务器错误的多种解决方案,提供了详尽的操作步骤和专业建议。无论是初学者还是有经验的开发者,都能从中受益。 ... [详细]
  • 在前两篇文章中,我们探讨了 ControllerDescriptor 和 ActionDescriptor 这两个描述对象,分别对应控制器和操作方法。本文将基于 MVC3 源码进一步分析 ParameterDescriptor,即用于描述 Action 方法参数的对象,并详细介绍其工作原理。 ... [详细]
author-avatar
饥饿的饮水机
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有