游戏开发论坛

 找回密码
 立即注册
搜索
查看: 2273|回复: 8

多通道是如何实现?

[复制链接]

28

主题

110

帖子

110

积分

注册会员

Rank: 2

积分
110
发表于 2006-4-29 16:22:00 | 显示全部楼层 |阅读模式
大家好,我们都见过hl2的演示,即可以使用3台显示器来玩hl2,每台显示画面的一个区域,这时整个屏幕分辨率是非常高的,称之为多通道。
这里还有一个24台显示器玩Quake的链接
http://www.kenwong.cn/post/play-quake3-on-24-monitors.html
我想知道的是它的实现原理,如果我们简单的增加显卡数量,显然无法支持这么多的显示输出。quake这个演示很清楚,是使用了24台机器联网,各负责一台显示器的输出,但都受其中一个主机的输入控制,操作方面有点类似CS的联网游戏中,多人观看同一个玩家的观察模式。
多台机器联网输出,每个只处理画面的一部分,如果是三通道,我可以理解为三个相机的视棱锥被拼在一起,各60度,三个就是180度,显示一个环形的视野,但是更多的显示输出我就无法搞懂了,似乎一台显示器只显示了相当小的部分,这样的话相机如何去设置呢?我们知道相机的视棱锥的角度会影响图像的远近距离,45度的画面看起来比60度的画面放大了,拉近了。
请朋友们赐教!

13

主题

978

帖子

978

积分

高级会员

Rank: 4

积分
978
发表于 2006-4-29 18:31:00 | 显示全部楼层

Re:多通道是如何实现?

嗯……我的第一个想法是用显卡(阵列)用较高分辨率输出
然后分成24个部分
不过……可实现性似乎有问题
第二个想法就是用SoftRender(不用dx、ogl等),将视锥分成24份,然后再做变换

对3DAPI不太了解,所以没法给出API解决方案

0

主题

12

帖子

12

积分

新手上路

Rank: 1

积分
12
发表于 2006-4-29 18:46:00 | 显示全部楼层

Re:多通道是如何实现?

你可以把整体的视锥看成一个金字塔,其底面是由各个小画面拼接而成的。各个小画面渲染时使用的视锥就是由该小画面与金字塔顶点连接形成的棱锥。

28

主题

110

帖子

110

积分

注册会员

Rank: 2

积分
110
 楼主| 发表于 2006-4-30 09:17:00 | 显示全部楼层

Re:多通道是如何实现?

谢谢大家的回答!
我们知道相机的视棱锥的角度会影响图像的远近距离,45度的画面看起来比60度的画面放大了,拉近了,简单的拼接视锥的话,这个问题如何解决?

30

主题

569

帖子

569

积分

高级会员

Rank: 4

积分
569
发表于 2006-4-30 09:44:00 | 显示全部楼层

Re:多通道是如何实现?

  很简单,分割24个视矩阵,再计算出24个专用的投影矩阵就行了。

28

主题

110

帖子

110

积分

注册会员

Rank: 2

积分
110
 楼主| 发表于 2006-5-1 23:04:00 | 显示全部楼层

Re:多通道是如何实现?

hanma你好,不知道能否提供一些这方面的资料,比如示例代码之类,不胜感谢!

30

主题

569

帖子

569

积分

高级会员

Rank: 4

积分
569
发表于 2006-5-2 05:00:00 | 显示全部楼层

Re:多通道是如何实现?

  不好意思,没有,这个东西对有3D数学基础的人来说,不是什么难事。自己研究研究吧。

197

主题

1041

帖子

1104

积分

金牌会员

Rank: 6Rank: 6

积分
1104
QQ
发表于 2006-5-2 17:31:00 | 显示全部楼层

Re:多通道是如何实现?

请解释一下~
什么叫投影矩阵?~

13

主题

978

帖子

978

积分

高级会员

Rank: 4

积分
978
发表于 2006-5-3 00:57:00 | 显示全部楼层

Re:多通道是如何实现?

可以去看Realtime-Rendering
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2026-1-24 10:07

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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