POPPUR爱换

 找回密码
 注册

QQ登录

只需一步,快速开始

手机号码,快捷登录

搜索
查看: 2004|回复: 14
打印 上一主题 下一主题

小白问题:贴图是先载到内存还是直接载到显存的?

[复制链接]
跳转到指定楼层
1#
发表于 2006-12-30 21:23 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
小白问题:贴图是先载到内存还是直接载到显存的?

小弟愚笨。。不要笑我。。:a)
2#
发表于 2006-12-30 21:25 | 只看该作者
:loveliness: 我想是内存
回复 支持 反对

使用道具 举报

3#
发表于 2006-12-30 21:32 | 只看该作者
内存吧。           
回复 支持 反对

使用道具 举报

4#
 楼主| 发表于 2006-12-30 21:58 | 只看该作者
60多人看,就是没人回答:( :(
在google上看到d3d的3d贴图只能直接进显存,2d可以到内存。是这样的么?

那么那种属于3d贴图那种事2d贴图呢?
回复 支持 反对

使用道具 举报

5#
发表于 2006-12-30 21:58 | 只看该作者
架构不一样的图形芯片不一定。

我知道SGI ONYX2机器上的IR2图形 是纹理是直接进纹理内存的还有专用的总线。KYRO也是一样的这种结构桢缓存和纹理缓存大都分开或者逻辑上分开(一个显存芯片但是存储的地址分开)。  同时代的Gefore3 是先进内存的。这些学习的时候讲过。

其他的不知道了。

不一定直接

[ 本帖最后由 huoran 于 2006-12-30 22:04 编辑 ]
回复 支持 反对

使用道具 举报

6#
 楼主| 发表于 2006-12-30 21:59 | 只看该作者
原帖由 huoran 于 2006-12-30 21:58 发表
架构不一样的图形芯片不一定。

我知道SGI ONYX2机器上的IR2图形 是纹理是直接进纹理内存的还有专用的总线。POwer VR 也是一样的。  同时代的Gefore3 是先进内存的。这些学习的时候讲过。

其他的不知道了。

这位高人学什么的阿?:blink:
回复 支持 反对

使用道具 举报

7#
发表于 2006-12-30 22:09 | 只看该作者
这个是 计算机图形原理 讲过的。自考的课程啊。
回复 支持 反对

使用道具 举报

8#
 楼主| 发表于 2006-12-30 22:16 | 只看该作者
原帖由 huoran 于 2006-12-30 22:09 发表
这个是 计算机图形原理 讲过的。自考的课程啊。

:a) 没学过。。见笑了。。

ps:还有人知道么,达人来做做科普阿
回复 支持 反对

使用道具 举报

9#
发表于 2006-12-31 05:33 | 只看该作者
其实往哪里 load,看程序的设计

OGL 我不是很清楚,但是 D3D 在创建 Texture/Vertex/Index 得时候,可以指定系统管理 (MANAGED) 或者手动管理

手动管理的话,可以指定载入显存 (LOCAL MEMORY) 还是直接用内存(慢) (SYSTEM MEMORY)

在内存留一个 copy 得好处是当游戏切换出桌面在切换回去的时候可以数秒钟内很快复原,缺点是占用内存

只用显存不用内存的好处是节省了内存,但是坏处就是切换一下需要重新从硬盘载入纹理,顶点之类的数据,相当于重新 load 一次
回复 支持 反对

使用道具 举报

10#
发表于 2006-12-31 05:36 | 只看该作者
更进一步讲,这就是 PC 作为一个多用途平台所要牺牲的地方

游戏机一次只运行一个独占全屏幕得游戏,根本没有 PC 上面全屏幕程序丢失焦点以后需要重新创建所有 GPU 资源得问题,所以在游戏机上的情况要简单很多
回复 支持 反对

使用道具 举报

11#
发表于 2006-12-31 09:03 | 只看该作者
XGL 也是可以认为指定存储位置的:但是对于Geforce3 在大型纹理应用时一般用以下方式:

Geforce 3  系统主内存和显存的关系是 纹理由硬盘调入系统内存然后把存有纹理的内存地址写进 Geforce 3内核中的FIFO 队列,采用拉的方式把纹理信息转移到显存中。同时内存中开始构建下一部分纹理(如果需要的话)。

内存相当于纹理的二级缓存。这样既能够保证纹理调用速度,又能够在画面切换的时候最快的速度重建GUI.
回复 支持 反对

使用道具 举报

12#
 楼主| 发表于 2006-12-31 11:28 | 只看该作者
原帖由 Illuminati 于 2006-12-31 05:36 发表
更进一步讲,这就是 PC 作为一个多用途平台所要牺牲的地方

游戏机一次只运行一个独占全屏幕得游戏,根本没有 PC 上面全屏幕程序丢失焦点以后需要重新创建所有 GPU 资源得问题,所以在游戏机上的情况要简单很多

明白了 谢谢:loveliness:
回复 支持 反对

使用道具 举报

13#
发表于 2006-12-31 14:18 | 只看该作者
研究这个东西,似乎显得很没有必要,是先载入内存还是载入显存,这个应该是DirectX来控制的,对于程序员是透明的,研究它有何意义?我写过dx程序,完全不需要我来控制显存和内存之间的交流。
回复 支持 反对

使用道具 举报

14#
发表于 2006-12-31 19:39 | 只看该作者
原帖由 hunguqi 于 2006-12-31 14:18 发表
研究这个东西,似乎显得很没有必要,是先载入内存还是载入显存,这个应该是DirectX来控制的,对于程序员是透明的,研究它有何意义?我写过dx程序,完全不需要我来控制显存和内存之间的交流。


那就是你写的不多

如果你知道 D3D 有 device invalidate 事件的话,你就清楚程序是怎么透过 D3D API 来干涉 texture, vertex, index 等等的存放位置了
回复 支持 反对

使用道具 举报

15#
发表于 2006-12-31 20:56 | 只看该作者
编写程序需要尽量充分的利用硬件资源。如何利用系统内存和显存需要仔细的思考。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

广告投放或合作|网站地图|处罚通告|

GMT+8, 2025-2-6 11:44

Powered by Discuz! X3.4

© 2001-2017 POPPUR.

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