关于3D处理的MMX技术:像素点色深的转化


日期: 2000-06-12 14:00 | 联系我
关注我: Telegram, Twitter

MMX技术在16位高彩和24位真彩数据方面作的并不是最好。封装好的加,乘逻辑运算符实际上已使得24位成了最具有吸引力的运算方式。它包含了3个8位(红,绿,兰)元素或?位固定点(48位是给RGB的)。完成运算之后(像Gouraud阴影,alpha,等),算法转化成RGB16(555或565)以来更新缓存。MMX技术并没有内置的算法,也没有为5位而封装的块。

24位的内部运算符使得能提供用8位调色板无法得到的高质量的色彩。包括:

为雾化,透明化的alpha混合

为橙色火光的RGB(多色彩)的光亮,等等

拟镜的加亮区

瞬间在屏幕上显示多于256种颜色

真正平滑的阴影,随意的混合色彩

少量(或没有)抖动色彩

与其它应用的调色板没有冲突或不协调

与高彩的容量和色彩可媲美,接近于HW 加速器

当然,系统的图像存储器的容量决定了是能用16位还是24位彩色。对于1MB的显卡,只能使用8位的调色板(640*480*2 字节需要600KB,如果没有双倍缓冲,或后备缓冲在存储系统中,这只能适应于1MB)。对于2MB或4MB的显卡,16位就很诱人了。640*480双倍缓冲后,占用1.2M,仍留下800KB给字符缓存或Z-缓冲。

8位色准许使用一个简单的MOVQ指令来同时以东8个点。如果有了MMX技术的执行单元和“pairing”指令,它也准许16个点的同时比较或(和)混合。不幸的是,8位的调色器处理需要在同一时间内从调色板中读出一个字节。

一直以来,老式处理器的8位处理代码在新的CPU上实际上是扮演着“速度绊脚石”的角色来降低性能。为了奔腾处理器和Dynamic Execution(TM)处理的高速度,这应被避免。例子如下:

自修改代码,它用新的地址或即时值重写了部分指令流。这使得避免使用其它注册者来得到数据。在新的CPU中,每个被修改的指令会浪费许多的时钟周期。因为深层的管道必须被清空,而且缓存必须要重写重取。

随机(不是顺序)进入存储区,作为乘法查找的结果,颜色变幻,阴影化或抖动

经常的数据独立分支,尤其当他们的顺区不规则时

与8位或16位 (AL,AH,AX,BL….)一样,32位的注册是很优秀的,将8位像素点的乘法和简单的32位写或0溢出单独字节结合起来

标签: 3D | MMX 优化

 文章评论

第 1 楼  发表于 2004-07-26 13:21 | 邵庆 的所有评论
你的文件上可否增加图片以便阅读!

第 2 楼  发表于 2004-07-27 14:24 | XiaoHui 的所有评论
网站改版时图片没有迁移过来....过段时间我再来整理一下. 图片太多了.

第 3 楼  发表于 2006-05-28 16:10 | stalagn 的所有评论
最加上插图

共有评论 3 条, 显示 3 条。

当前页面是本站的 Google AMP 版本。
欲查看完整版本和发表评论请点击:完整版 »

 

程序员小辉 建站于 1997
Copyright © XiaoHui.com; 保留所有权利。