⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 专业tc--图形篇7.htm

📁 图形学的一些基础知识
💻 HTM
📖 第 1 页 / 共 2 页
字号:
virge之流已经被划入了淘汰品的行列。Voodoo系列百分之七、八十的市场占有率现在是无人能出其右,但3Dfx也并不能高枕无忧。可以预见,下半年的3D市场一定会出现群雄混战的格局,好戏已经开始了。 
作为消费者的我们除了坐山观虎斗之外,剩下的就是捂着钱包偷笑了。<BR><BR>3DNow!TM技术的出现,为扫除计算机三维图像前端处理速度的瓶颈提供了一套理想的解决方案,为当今的x86处理器架构开创了截然不同的三维运算及多媒体运算能力。该技术与当前的x86软件兼容,并且无需为操作系统提供支持,同时所有专为3DNow!TM技术而设计的应用方案均可运行所有操作系统。因此,3DNow!技术所带来的是一项根本的技术性突破。从最近Ziff-Davis实验室的3D 
WinBench 98基准测试中不难找到来用3DNow! TM技术的AMD K6(r)-2处理器与Pentium 
II处理器的测试结果。在测试中,两者均采用相同的配置为基准,并采用微软即将推出的Directx 6.0。从测试结果来看, AMD 
K6(r)-2系统的三维性能显著胜出Pentium II系统,配置AMD K6(r)-2/300处理器的系统得分为1110分,而同等时钟频率的Peniium 
II 300系统只获得961分,即使是pentium II 
400系统也仅仅得到ll20分的成绩。而采用Winstone(r)98测试的主流商用软件性能评分中,AMD K6(r)-2/ 300与Pentium II 
300则不分伯仲,分获215和216分。<BR>面对如此的高性能和相对低的价位,3DNow! 
TM技术一经推出即成为业界多家软件厂商注目的焦点,其中许多著名厂商的软件作品如Epic 
MegaGames的Unreal、Rage的Incoming、Microsoft的Baseball 3D、Imagine Studios的Ares 
Rising、Viewpoint DataLals的LiveArt 98等软件均已进行优化以便适用于3DNow! 
技术,这些软件现已出现在IT市场上。其他一些公司的相应优化软件也将于年内推出。预计在1998年年内,3DNow! 
TM技术掀起三维图像处理应用的狂潮已成定势。<BR>3DNow! 
TM技术是AMD公司为消除传统的图像处理过程中进行浮点运算和多媒体应用程序的瓶颈而研究开发的一套创新的指令集,是该公司旨次为业界提供的三维图像处理创新技术,它带来了全新水平的三维图形性能及逼真的图形效果,开创了与三维图形加速卡同步运算的先河。该指令集共包含21个指令,可最大程度地支持称为“单指令多数据”(SIMD)的浮点运算。针对三维图像处理的早期阶段集中的大量浮点运算指令,该技术相应备有一组全新的单精度浮点指令,它们可加速物理及几何运算,舒缓瓶颈的问题,使中央处理器能够在速度上赶上图形加速卡,加快多媒体应用程序的运算过程,大幅提高三维图像运算性能及逼真度。由于采用3DNow!TM技术的AMD 
K6(r) -2处理器的微架构可以支持在图像处理过程中全面执行两条指令,即每一时钟周期执行高达两个3DNow! 
TM指令,同时每一指令又可执行两个单精度浮点运算,从而AMD K6(r)-2处理器在每一时钟周期内可执行四个浮点运算(包括加、减、乘)。此外,3DNow! 
TM技术还包括一个特定的SIMD整数指令,有关指令集可以执行SIMD整数运算。数据预取以及更快的MMX至浮点交换等功能,方便为象素动作提供补偿,从而提高了MPEG解码能力。AMD 
K6(r)-2/ 333的浮点性能最高可达1.333 Gigaflops,较pentium II 
333及400的浮点性能优胜很多,后两者的浮点性能分别为0.333 Giganops和0.4 Gigaflops。即使是AMD 
K6(r)-2/300的最高浮点性能也可达到1.2 Gigaflops,比代表目前Intel公司最高性能的Pentium II 
400的浮点性能还高三倍,这正是3DNow! 
TM技术带来的技术飞跃。<BR><BR>显示卡技术的关键是显示总线技术,到现在显示总线技术已经发展了ISA、VESA、LOCAL 
BUS、PCI和AGP技术4代。据统计,前三种结构的显示卡技术在97年升始走向没落,主要是用户对显示技术的要求随着3D显示技术和操作系统的技术突飞猛进的发展而提升。<BR>在PCI技术雄霸桌面PC四年之后,INTEL推出了崭新的AGP显示技术,这种技术可以加速大多数的3D绘图、影像与2D绘图工作。AGP显示卡与AGP新式专用插槽,将PC绘图工作从繁忙的PCI总线中解放出来,搭建了一条高速直通公路。<BR>AGP技术推出的直接受益者是3D加速能力的飞速提高,AGP可以让专门为其设计的3D游戏、软件与应用程序描绘出更加真实和快捷的效果,AGP可以解决目前从网络卡到音效卡都抢用PCI通道的拥挤状况。<BR>AGP技术有两个核心内容:一是使用PC的系统主内存作为显示卡上显示内存的扩展延伸,这样可以大大增加显示内存的潜在容量;二是使用更高的专用总线频率66MHz、133MHz甚至266MHz,这样可以极大提高数据的传输率(AGP在66MHz时是266MB/s, 
PCI的33MHz只有133MB/s)。<BR>目前流行的AGP主要有两种方式:<BR>一是DMA方式,在这种方式下,显示卡不使用PC系统主内存做显示内存的扩展。这时显示卡只是利用高速的AGP总线来提高数据传输率。<BR>二是DIME(Direct 
Memory 
Execute)方式,就是在显示卡上的显示内存的容量不够的时候,将系统主内存当作内存使用。将许多耗费显示内存的3D操作在系统内存内完成,这样在系统价格基本不变的前提下大大提高PC整机3D机能。未来的几个月内随着100MHz的高速SDRAM的普及和价格的回落,系统主内存的技术差距进一步缩小,这一切为DIMERR的使用创造一块良好的土壤。<BR>个人电脑用户现在购买AGP显示卡时机已经成熟。PII技术的成熟和快速普及,AGP将可以取代PCI成为最普遍的显示绘图技术。<BR>而利用APG技术的电脑整机并不会使新PC的售价提高多少,这样促进用户可以用有限的钱,选择市场上最好的产品组合成性能价格比最好的个人电脑。<BR>随着INTEL 
440BX这一类支持100MHz系统频率的主机板控制芯片在98年Q3的普及,使得系统总线的带宽进一步增大。100MHz系统频率的条件下AGP技术充分利用系统总线的优势可以完美发挥出来。<BR>6月26日微软公司推出WINDOWS 
98操作系统,在这种操作系统中完整支持AGP技术,使得在此操作系统的环境中显示效果AGP显示卡比PCI显示卡要好很多。许多WINDOWS 
95的用户同样可以通过升级WINDOWS95的版本到OSR2.1,安装微软Directx5.0后一样可以完美体验到APG技术的好处。<BR>针对APG增强技术设计的软件表现3D 
的效果远比PCI显示卡的效果好。事实上,AGP 希望能淘汰PC 游戏里过于简单的3D 场景,执行相同的游戏是AGP 
加速增强版本的某些视觉效果的改变令人印象深刻。在使用AGP 增强版本的G-police 
测试的结果发现,原本PCI版本上的爆炸效果边缘出现的令人讨厌的锯齿不见了,而原本静态的广告变成绚丽的动态画面。<BR><BR>到现在为止,您应该已经掌握计算机图形图象处理的一些基本知识,在这里我们将以几个小的C语言程序段向您讲解一下如何用编制程序来进行图形调用和图象处理。<BR>下面我们先来看一下这个利用VGA图形卡页面功能的程序:<BR>include&lt;graphics.h&gt;<BR>main()<BR>int 
graphdriver=DETECT,graphmode;<BR>int 
i,j,k;<BR>initgraph(&amp;graphdriver,&amp;graphmode,"");<BR>cleardevice();<BR>setactivepage(0);<BR>rectangle(100,50,200,150);<BR>setactivepage(1);<BR>circle(150,750,50);<BR>for(i=1;i&lt;=20;i++)<BR>{kk1}<BR>setactivepage(0);<BR>for(j=1;j&lt;=30000;j++)<BR>i=j;<BR>setactivepage(1);<BR>for(k=1;k&lt;=30000;k++)<BR>i=j;<BR>}<BR>getch();<BR>closegraph();<BR>}<BR>接下来,我们以Turbo 
C语言来看一下如何实现对图形模式的控制:<BR>Turbo C中提供了四个模式控制函数:<BR>int far getgraphmode 
(void);<BR>返回现行图形模式的值;<BR>void far 
restorecrtmode(void);<BR>恢复屏幕在图形初始化前的模式;<BR>void far setgraphmode(int 
mode);<BR>设置系统图形模式并清屏幕;<BR>void far getmoderange(int graphdriver,int far 
*lomode,int far 
*hmode);<BR>获得一个图形驱动程序可设置的图形模式的范围。<BR>经过调用以上函数,可实现使显示器暂时离开图形模式<BR>进入文本模式,进行文本输出,然后不经过initgraph再返回图形模式。<BR>#include 
&lt;graphics.h&gt;<BR>#include &lt;stdio.h&gt;<BR>main()<BR>{kk1}<BR>int 
g_driver,g_mode,lo,hi;<BR>g_driver=CGA;<BR>//设置CGA的图形驱动程序&nbsp;<BR>getmodararge(CGA,&amp;lo,&amp;hi);<BR>//获得CGA的图形模式范围<BR>printf("CGA 
supporting modes range form %d to 
%d.\n",lo,hi);<BR>//显示CGA显示模式范围<BR>initgraph(&amp;gdriver,&amp;lo,"c://tc");<BR>//初始化为CGA 
CO模式<BR>bar3d(100,30,130,150,0,0);<BR>//画一实心方块<BR>getch();<BR>g_mode=getgraphmode();<BR>//获得现行图形模式<BR>restorecrtmode();<BR>//返回图形初始化前的显示模式<BR>printf("Now 
is text mode, press any key back to graphics 
mode.\n");<BR>getch();<BR>setgraphmode (gmode);<BR>//再回到图形模式<BR>rectangle 
(50,30,100,130);<BR>//画一长方形<BR>getch 
();<BR>//等待敲一键<BR>closegraph();<BR>//关闭图形系统<BR>}<BR>上述程序是针对CGA显示器的,根据本章第一节中所列出的各种显示器及其显示模式的表格,可以很方便地将此程序修改为适用于其它显示器模式的程序。 

<P align=left><BR>
<P align=center>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
</P></BODY></HTML>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -