什么叫顶点缓存?“缓存”二字让我至今不明不白。学到现在,仍然对顶点缓存一知半解,这甚至直接影响了我对D3D的
什么叫顶点缓存?“缓存”二字让我至今不明不白。
学到现在,仍然对顶点缓存一知半解,这甚至直接影响了我对D3D的感性认识。
我是自学过来的,电脑知识的学习对我来说,只有书和网络,所以还请莫见怪。
这世界就是这样,充满了太多的联系性。一个问题,不单纯,一件事情不单纯。
刚刚又看了下龙书关于顶点缓存的描述:
“一个顶点缓存是一个包含顶点数据的连续内存空间”、
“顶点缓存和索引缓存可以被放置在显存中”、
“动态缓存一般放置在AGP存储区中”……
内存空间?这内存就是那张内存条?
显存?又放到了显存。。
AGP?又放到了AGP显存里。
那么问题就是“缓存”二字了,从我学C++的时候,就遇到过“buffer”一词,虽然查过,知道是等于一片内存区域。
(假如我定义一个:int a[] = {1,2,3}; 那这里可以说是开辟了一个缓存给a?如果是int a = 10; 呢?)
然而“缓存”所给我更多的只是一知半解。
我又翻了一下《深入理解计算机系统》,发现“缓存”二字,感觉就是存储空间。也就是说,缓存可以按如下方式描述:
C/C++ codeenum 缓存 {CPU寄存器,芯片上的L1高速缓存,芯片上的L2高速缓存,内存,显存,AGP显存,磁盘};
请问,在我们学的D3D中,应该如何解释?如何理解?
[解决办法]就是内存空间
[解决办法]就是内存,可以是你主板上的内存条,也可以是显卡上的显存(实际也是内存)
[解决办法]物理上都叫内存(RAM),用处不同而已。
这个内存放到显卡上,或是给显卡用,就叫显存。AGP显存(这个说法应该讲不太专业),就是通过显卡通过GP总线访问的内存。
打个比方,橡皮被做成轮胎,它就有了另外个名字叫轮胎。
[解决办法]我觉得没有必要很生硬的去理解概念。当你用多了,你自然就会理解!
比如,从硬件特性上看,你可以说内存=显存,但是使用上却不能简单的划等号。
还有就是不要太把书上的概念当回事,多自己尝试才能真正理解
比如:“一个顶点缓存是一个包含顶点数据的连续内存空间”就有问题, 没有谁规定顶点缓存一定是连续的内存空间,也可能是翻译错了。
[解决办法]显存 如果有独立显卡 指的是你的显卡上所带的内存 因为专供显卡自身使用 名曰显卡内存,顾名思义了,自热就不难理解了吧?
内存则指的是供给计算机全局使用的内存。
没有独立显卡的电脑, 计算机会将一部分内存划分为显示需要用的内存,以此来保证显示性能;此外如果独立显卡自带的显示内存满载,无法继续供给,那么系统会支援其一部分内存来保证显卡的工作。
缓存,临时内存空间的概念。比如你要操作一部分数据,因为你在这段应用内会频繁操作,所以直接将其暂时放在内存里,用起来更效率,方便。等用完了,你再通知设备可以释放掉了。
它属于内存储器,硬盘等属于外部存储器,内部存储器负责供给计算机一些程序的供给。比如它将临时存储与CPU的计算数据,等待与外部存储设备的交换。
其实,关于这个概念,中学和大学的计算机基础教材,已经简单提及了...........
[解决办法]D3D来说,与显卡设备交互,那你的操作当然是在显存里运行,有了结果或是指令再通知显卡。
或许可以理解成,你老婆让你回家之后给他一个电话,告知他你回家了,如果你老婆没有特殊的要求,你不需要每走一步就告诉她,你走了一步,只要到达的时候告知即可。
可能我解释的也不是很明白。呵呵.
看你的枚举 逻辑有些乱了
实际上是内存中存在一部分操作空间叫做缓存(如果喊成缓冲内存是不是明白?),和硬盘没有关系,外部设备只保存最终数据. 比如内存操作的结果。
[解决办法]一种叫Buffer,特点是时间换空间。比如你要把一个文件复制到另一张磁盘中。因为内存不够,就得多次读源文件,读一段写一段。那么暂存部分文件的存储空间就叫Buffer。
另一种叫Cache,特点是空间换时间。比如你要反复地使用某一个文件,但反复重读文件是要花掉很多磁盘IO时间的。这时,你把这个文件通过某种机制,让它常驻内存。这样,再次使用该文件时,就免除了磁盘IO消耗。这种目的的存储空间就叫Cache。
[解决办法]