Questions tagged «2d»

6
如何制作简单的2D插图以伴随几何答案?
在我对仿射变换的回答中,我做了一些小插图来帮助解释。 您如何快速制作可表达几何或数学思想的可上传PNG? 该问题旨在支持我的后记答案,但旨在寻求其他可能更有利于SE网络的解决方案。但是为了可信起见,答案必须链接到实际上已使用该技术的帖子,以及足够的“ howto”部分(如果涉及的内容不止是诸如“从菜单中选择导出”之类的内容)。 这里和这里有两个关于如何根据我们网站的优先级确定问题范围的元问题。
14 2d 


2
硬件加速绘制弯曲形状
如何快速绘制弯曲的形状? 通过“快速”我认为应该尽可能多地使用硬件设施 “弯曲”是指由二次贝塞尔曲线或三次贝塞尔曲线定义的边界 “形状”是指“胖”笔划(即大于1px宽)或奇数/非零填充的“ 2D弯曲多边形”,可能带有孔(即字母“ O”) 我问是因为我所知道的选项有几个缺点: 对形状进行三角剖分并将其发送到OpenGL-在CPU上完成最困难的工作,并且可能使用太多/很少的三角形(即浪费/粗大) 纹理图集-必须在每次更改(形状,比例,旋转等)时重新计算/上载纹理 带符号的距离字段-大规模时细节看起来不漂亮或必须重新计算/上载纹理 NV_path_rendering-可以,如果它仅在Nvidia的显卡上不起作用 OpenVG-可能的话,如果它不能仅在移动设备上运行 ? *在我看来,OpenVG并没有完全向前发展。有谁知道它的未来前景吗?今天值得关注吗? ** OpenGL 4+提供了对多边形进行动态镶嵌的方法。可以使用某种方式从“三角剖分”选项中细化网格,以使形状边界至少看起来不“成角度”吗?

2
从根本上讲,二维位图是如何渲染的?
假设我们有一台64位的可字寻址的计算机,我们想对其进行编程,以将存储为二进制图像位图(例如下面的一个)的5x7字符输出到内存映射的显示器。 由于每个字符有5 x 7 = 35像素,因此我们可以在单个单词中使用35位存储字符。最低有效位从单词的左侧开始,并且图像中的每个像素由第n位表示,如上所示,数字“ 3”将在内存中存储为:011101000100001001100000100011000101110,后跟29个未使用位设置为0。 这是在旧/现代计算机中存储字符的方式吗?还是每个像素使用单个字节/字? 如果以这种方式存储它们,汇编/机器代码中的例程(仅使用基本指令,例如计算机指令集体系结构中的位,算术和数据传输操作)将用来将这些数据转换为图像显示器是什么样的?会是这样吗? 将要更新的当前像素的x和y显示坐标存储在某个寄存器中。 将两个选定的RGB值(在这种情况下,绿色为0,255,0,黑色为0,0,0)存储在其他两个单独的寄存器中。 还有两个寄存器用作初始化为5和7的计数器,以跟踪正在渲染的图像的当前行和列。 测试列寄存器是否不为0。如果不是,则测试位图的LSB是否设置为1,然后根据结果将相应的RGB值寄存器与x和y坐标寄存器进行“与”运算,然后对结果进行MOV到显示输出寄存器。 将行计数器寄存器减1,测试是否为0。如果为0,则将其设置回5,并将y坐标增加1,并将列计数器减少1。 将持有位图的寄存器向左移动1位。 JMP到指令4。 有没有更简单或更有效的方法来做到这一点?看起来像渲染单个小文本字符这样的简单操作也需要大量的操作,并且大约需要200个CPU周期。 最后,在机器级代码方面是否有任何不错的书籍或资源可用于从头开始显示图像,因为我找不到任何东西,因为它们掩盖了这个特定主题,或者代码是用高级语言编写的,或者是使用宏的汇编程序,所有这些都是“作弊的”,并且没有说明最低层的基本情况。
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.