游戏开发论坛

 找回密码
 立即注册
搜索
查看: 3167|回复: 7

大家好。3D程序中,如何能够实现这么一个东西

[复制链接]

3

主题

9

帖子

13

积分

新手上路

Rank: 1

积分
13
发表于 2009-3-16 10:34:00 | 显示全部楼层 |阅读模式
只有一个人物在桌面动,这个人物是3D的

对上面的解说:
1、窗口应该是一个不规则窗口。这个怎么做
2、如果做不到不规则窗口,那也可以做成透明的,只有人物那个区域不是透明的

这些如何实现啊?
谢谢大家指点!!

3

主题

9

帖子

13

积分

新手上路

Rank: 1

积分
13
 楼主| 发表于 2009-3-17 11:37:00 | 显示全部楼层

Re:大家好。3D程序中,如何能够实现这么一个东西

怎么没有人理我。

知道的给讲一下哈

0

主题

56

帖子

62

积分

注册会员

Rank: 2

积分
62
发表于 2009-3-17 12:51:00 | 显示全部楼层

Re:大家好。3D程序中,如何能够实现这么一个东西

其实难度不在3D的那块部分,渲染应该跟一般的没区别。关键是不规则窗口,我没做过。
你到底是哪里不懂啊?

3

主题

9

帖子

13

积分

新手上路

Rank: 1

积分
13
 楼主| 发表于 2009-3-17 17:17:00 | 显示全部楼层

Re:大家好。3D程序中,如何能够实现这么一个东西

我不知道该怎么做。

0

主题

56

帖子

62

积分

注册会员

Rank: 2

积分
62
发表于 2009-3-17 17:25:00 | 显示全部楼层

Re:大家好。3D程序中,如何能够实现这么一个东西

完全不知道?不知道窗口怎么画?不知道3D模型怎么显示?

21

主题

112

帖子

118

积分

注册会员

Rank: 2

积分
118
发表于 2009-3-17 17:37:00 | 显示全部楼层

Re:大家好。3D程序中,如何能够实现这么一个东西

SetLayeredWindowAttributes 这个 WIN32 API 可以让窗口透明或者半透明(WIN2000以上才有。。包含WIN2000)
但是,如果你要用 DirectX 渲染这个窗口的话,这个函数不会起作用。。。
所以,大概有两个方法:
1.渲染 3D 模型的时候,把窗口后面(也就是被窗口遮挡的部分)先 Bitblt 上去,然后再画 3D 模型,不过这样会比较慢
2.放弃渲染 3D 模型,把3D模型的每一帧,存成GIF或者BMP,用 GDI 完成你的项目
3.借助 FLASH

3

主题

9

帖子

13

积分

新手上路

Rank: 1

积分
13
 楼主| 发表于 2009-3-18 10:46:00 | 显示全部楼层

Re:大家好。3D程序中,如何能够实现这么一个东西

谢谢draculamx的回答。

我试了SetLayeredWindowAttributes ,果然不行。我是用OpenGL的。我怀疑是因为3D引擎渲染的窗口是通过显卡计算的,所以不行,不是纯软的东西。

1、这个确实效率不高,而且这样做的话,当点击背景时,其实还是点击在本程序的窗口,这个也给用户不太好的感觉
2、这个是我的一个备选方案

3、借助Flash,请问这个怎么弄?

感谢!

21

主题

112

帖子

118

积分

注册会员

Rank: 2

积分
118
发表于 2009-3-18 11:06:00 | 显示全部楼层

Re:大家好。3D程序中,如何能够实现这么一个东西

第三点,是我临时想到的。。。。我自己也没做过。。。
不过,以我来看,类似“桌面宠物”这种东西,很久以前就有人实现了,记得我在读大学的时候,就曾经见过一个用 VB5 写的“桌面宠物”,效果相当了得,如果拿到现在机器上跑,肯定没问题,那个程序就是用的GDI。。。
宠物的每一个“动作”用3-5帧BMP来快速切换,或者直接使用 GIF 。。。。
有时间的话,你可以研究一下现在 QQ 里普遍使用的 “魔法表情”,那应该就是你想要的效果
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2026-1-20 02:30

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表