Questions tagged «graphics»

3
为什么硬件加速的矢量图形没有被删除?
我正在开发一个涉及以60fps实时处理矢量路径的应用程序,而关于该主题的信息很少,我感到非常惊讶。最初,我尝试使用CoreGraphics来实现我的想法,但是对于我的目的而言,它的表现并不理想。然后,我发现有一个用于硬件加速矢量图形的Khronos标准称为OpenVG,并且值得庆幸的是,一个善良的人写了一个名为MonkVG的OpenGL ES半实现。 但是,尽管事实上OpenVG是一个非常实用的API,但Khronos似乎还是放弃了它。根据Wikipedia的说法,自2011年以来,工作组“决定……不召开任何常规会议以进一步实现标准化”。据我所知,该文档仅包含一个参考卡。而且,互联网上几乎没有OpenVG的任何示例。我可以在眨眼之间找到数百个OpenGL教程,但是OpenVG似乎明显缺失。 您可能会认为,在当今分辨率迅速提高的世界中,硬件加速矢量将更为重要,而且似乎许多公司正在实现自己的方式。例如,Qt和Flash具有用于硬件加速矢量的方案,并且许多Adobe的工具都可以选择硬件加速。但是,当标准已经存在时,车轮似乎正在被彻底改造! 关于OpenVG,我是否缺少某些东西,使其不适合实际使用?还是仅仅是因为标准没有及时赶上而现在注定要变得晦涩难懂?您认为将来是否存在用于硬件加速矢量图形的标准化API的空间,还是使用基于栅格的传统技术会更容易?还是矢量在进入之前就只是在走出去?

1
将一维数据结构视为2D网格
我正在使用将2D图像表示为1D数组的本机类。例如,如果要更改一个像素,则现在需要如何从x,y坐标中导出索引。 因此,假设我们有一个array1d像这样的一维数组: array1d = [ a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y ] 在我们的程序上下文中,array1d代表2D网格: a b c d e f g h i j k l m n o p q r …

6
与图形设计师合作的正确方法是什么?[关闭]
最近,我们与一位图形设计师(由客户安排)合作,为我们构建的Django + Bootstrap应用程序提供了外观。设计师提供了新布局的一系列静态图像,以及描述一些技术属性(字体大小,颜色,一些尺寸等)的文档。 事实证明,实现此目标非常耗时。尽管整个站点基本上都是首页,索引页和六个详细页面,但我花了至少5天时间才实现CSS和HTML更改。所以我会弯腰称这为错误的方式。 我的基本方法是: 比较静态图像和当前渲染,并注意差异。 猜猜在CSS / HTML中需要进行哪些更改 做出改变 转到步骤1。 我不了解某些特殊问题,因为该设计包括将8列更改为12列,某些图像格式错误(.png在不同的浏览器/平台组合上可能呈现不同的图像),麻烦于尝试撤消Bootstrap的样式,通常的CSS角力,以达到像素完美的渲染等效果。有时,我不得不重新组织HTML模板以获得某种行为。 正确的方法是什么?

6
我不会画。如何进行抛光应用?
我不是平面设计师。我很难画任何东西。我努力构建与开发工具捆绑在一起的“示例”应用程序一样美观的东西。主要是因为我不喜欢艺术品资产。 我可以采取什么策略来缓解这种情况?
41 graphics 

7
用C语言编写性能?[关闭]
我知道我经常听到C通常比C ++具有性能优势。在我意识到MSVC似乎甚至不支持C的最新标准之前,我并没有真正想到它,但据我所知,最新的版本支持C99。 我打算编写一个包含一些代码的库以在OpenGL中呈现,以便我可以重用它。我打算用C语言编写该库,因为在图形方面,任何性能的提高都是值得欢迎的。 但这真的值得吗?使用该库的代码很可能是用C ++编写的,而我通常更喜欢用C ++编写代码。 但是,如果产生的性能差异很小,我可能会选择C。 可能还需要注意的是,这个库将是我可以在Windows / OS X / Linux上使用的库,并且我很可能会原生编译所有内容(Windows的MSVC,OS X的Clang或GCC以及Linux的GCC。 。或可能是英特尔的所有编译器)。 我环顾四周,并找到了一些基准测试等,但是我所看到的所有内容都是针对GCC而不是MSVC和Clang的。此外,基准测试未提及所用语言的标准。有人对此有任何想法吗? 编辑:经过几年的经验,我只是想分享我对这个问题的观点。我最终用C ++编写了一个问这个问题的项目。我大约在同一时间在C中启动了另一个项目,因为我们希望获得尽可能少的性能,并且需要该项目在C中可链接。几个月前,我到达了真正需要地图和高级界面的地步字符串操作。我知道C ++标准库中的这种功能,并最终得出结论:标准库中的那些结构可能会比在合理的时间内可以在C中实现的映射和字符串更好并且更稳定。通过向C ++代码编写C接口,可以很容易地满足在C中可链接的要求,该接口可以通过不透明类型快速完成。用C ++重写库似乎比用C编写库快得多,而且不容易出现错误,尤其是内存泄漏。我还能够使用标准库线程库,该库比使用特定于平台的实现要容易得多。最后,我相信用C ++编写库可以带来巨大的好处,而性能成本可能很小。我尚未对C ++版本进行基准测试,但是我认为使用标准库数据结构可能会获得比我编写的性能更高的性能。我相信用C ++编写库可以带来巨大的好处,而性能成本可能很小。我尚未对C ++版本进行基准测试,但是我认为使用标准库数据结构可能会获得比我编写的性能更高的性能。我相信用C ++编写库可以带来巨大的好处,而性能成本可能很小。我尚未对C ++版本进行基准测试,但是我认为使用标准库数据结构可能会获得比我编写的性能更高的性能。

4
完美的淡入淡出
我发现很难用语言来描述这个问题,这就是为什么我制作了一个视频(45秒)来说明它的原因。这是问题的预览,请在Vimeo上查看它:http : //vimeo.com/epologee/perfect-crossfade 在过去十年中,在许多领域中,我一直都在反复讨论如何创建完美的淡入淡出效果或溶解两个图像或形状的问题。首先是视频编辑,然后是Flash动画,现在是iOS编程。当您开始对其进行谷歌搜索时,可以找到许多解决方法,但是我这次真的想解决这个问题,而不会受到黑客的攻击。 摘要: 如果要使生成的透明度与任一原始位图相匹配,则在对两个半透明,同色位图进行交叉渐变时应用的技术或曲线的名称是什么? 是否存在(数学)函数来计算淡入淡出期间所需的部分透明度/ alpha值? 是否有编程具有这些功能为预设语言,类似ease in,ease out或ease in out在ActionScript或可可中发现的功能呢? 更新:除了视频,我还制作了一个示例项目(需要Xcode和iOS SDK)并将其发布在github上。它显示了与视频相同的动画,但是这次使用了正方形:https : //github.com/epologee/StackOverflow-Example-Code

3
您将如何对OpenGL的图形代码进行单元测试或执行最有效的自动化测试?
我在C ++中的OpenGL之上编写游戏和随附的图形引擎。我也是良好的编码过程和自动化测试的粉丝。图形输出+测试似乎几乎是不混溶的,因为输出通常仅是可视的,或者非常注重视觉。 例如,想象一下按字节分析渲染到屏幕上的原始图像流-您需要与之比较的测试数据,这很难创建/获取,并且通常渲染的图像在屏幕上并不相同。在不同时间运行时的字节级别-算法中的微小变化将完全破坏该方法。 我正在考虑创建一个可视化的单元测试套件,在其中基本上可以渲染不同的测试场景,显示诸如阴影贴图,动画等之类的内容。作为CI的一部分,这些场景随后将被渲染为视频。具有不同指标的文件(或可能将其保留为可执行文件)。这仍然需要对视频文件进行手动检查,但至少会实现某种程度的自动化和标准化。 你怎么看?我希望有更好的方法?

2
获取开源项目的徽标和图形[关闭]
已关闭。这个问题需要更加集中。它当前不接受答案。 想改善这个问题吗?更新问题,使其仅通过编辑此帖子来关注一个问题。 4年前关闭。 我从事开源项目已有两年了。 我想创建一个网站,但是我的预算基本上为零。我还需要一个徽标。 我的问题:开源开发人员应该如何在不花费大量资金的情况下改善项目的“视觉吸引力”?有平面设计师愿意捐出时间吗?如何找到它们(如果存在)。 对于一个项目,您要花费大量时间-您想给它一个漂亮的网站,以吸引人们的眼球。另一方面,您不想花钱购买免费赠送的东西。 有没有人可以分享任何个人经验?


16
定义两个点的矩形背后的想法是什么?[关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引用的形式回答。 4年前关闭。 并不是说这没有道理,而是在99%的时间内效果都不好。 通常,在2D图形中,矩形是作为一对点进行初始化,存储和操作的。没有特别的语言, class Rect: p1, p2: point 将矩形定义为两个x值和两个y值更有意义,如下所示: class Rect xleft, xright: int ytop, ybottom: int 有两点,如果您想在源代码中的某个地方使用顶部的y值,则必须说rect.p1.y(hmmm,停下来想一想,是p1还是p2),但是使用四个值作为纯数据成员,就很清楚直接了:rect.ytop(无需思考!)使用两点意味着在处理垂直方向时,您必须纠结水平方向;独立元素之间存在无关紧要的关系。 两点想法是如何产生的,为什么会持续下去?它相对于裸露的x和y坐标有好处吗? 补充说明:此问题是在XY对齐矩形的背景下,例如在Windows管理器和GUI工具包中,而不是在绘图应用程序中的任意形状的背景下。

5
擅长后端,但前端不好
我想开始Web开发,我一直在学习php。 我有Java,Python和C ++的 经验,这种经验使我擅长于Web开发的后端。 但是我在设计和图形方面很糟糕。 我要启动网站。 你们建议我做什么? 如果您的建议是要更好地使用图形,那是个好方法吗? 我也想知道你们在设计和图形上使用了什么,什么是学习的好地方?

3
低级Linux图形
出于教育目的,我想在Linux环境下编写一个应用程序,该应用程序可以处理键盘事件并绘制图形而没有诸如X或SDL之类的巨大依赖。我认为这是必须可行的,因为X和SDL本身就是程序,因此它们必须依赖于环境固有的其他方法。这种理解正确吗? 如果是这样,我在哪里可以学习编写这样的程序?我有限的经验告诉我,这将涉及到调用内核和/或写入特殊文件。但是,我还没有找到有关此问题的任何教程(我什至不知道Google应该怎么做)。 另外,如果相关,我将在Virtualbox上运行Debian Squeeze。我使用的netinst cd没有联网功能,因此当前没有太多安装。我将安装gcc,但我希望仅此而已。
11 linux  graphics 

1
图形程序员如何处理不更改图像的渲染顶点?
因此,标题有点尴尬。我将提供一些背景信息,然后提出我的问题。 背景:我是一名Web GIS应用程序开发人员,但在业余时间我一直在玩地图渲染和改进数据交换格式。我仅在2D空间中工作。 我遇到的一个有趣的问题是,当您以小比例绘制多边形(放大的出路)时,许多顶点是多余的。一个极端的情况是,您有一个具有500,000个顶点的多边形,仅占用一个像素。如果要将这些数据发送到浏览器,则可以忽略其中大约499,999个顶点。我们实现这一目标的一种方法是在服务器上渲染图像并将其作为PNG发送:瞧,这很重要。不过,有时我们还是希望将数据发送到浏览器,然后在其中可以使用SVG(或canvas或webgl)对其进行呈现,以便可以进行交互。 问题:事实证明,使用现代地理数据集,很容易使SVG的渲染功能超负荷。为了解决这些限制,我试图找出如何在视觉上无损地减少给定比例尺和地图范围(以及必要时已知地图像素的宽度和高度)的数据集。 仅使用Douglas-Peucker算法,我的数据量就大大减少了,我相信我能够将其保持在一个像素以内,使多边形真实。不幸的是,道格拉斯·皮克(Douglas-Peucker)没有保留拓扑,因此改变了多边形之间边界的渲染方式。我无法轻易找到其他算法来尝试并适应该目的,但是我没有太多的CS /算法背景,如果我看过它们,可能会认不出来。

3
制作图像镶嵌的算法-有比这更快的方法吗?
我一直在玩制作图像马赛克。我的脚本拍摄了大量图像,将它们缩小为缩略图大小,然后将它们用作平铺以逼近目标图像。 该方法实际上非常令人愉快: 我计算每个图块位置中每个拇指的均方误差。 起初,我只是使用贪婪的放置方式:将误差最小的拇指放在最适合的图块上,然后放置下一个,依此类推。 贪婪的问题在于,无论它们是否紧密匹配,最终都会让您最终将最不相同的指尖放在最不受欢迎的图块上。我在这里显示示例:http : //williamedwardscoder.tumblr.com/post/84505278488/making-image-mosaics 因此,我然后进行随机交换,直到脚本被中断。结果还可以。 随机交换两个图块并不总是一种改进,但是有时三个或更多图块的旋转会导致整体改进,即A <-> B可能不会改进,但A -> B -> C -> A1可能会。 因此,在选择了两个随机图块并发现它们没有改善之后,我选择了一堆图块来评估它们是否可以成为这种旋转中的第三个图块。我不探讨是否可以使四个图块中的任何一组进行有利可图的旋转,等等。很快就会变得非常昂贵。 但这需要时间。。很多时间! 有没有更好,更快的方法? 赏金更新 我测试了匈牙利方法的各种Python实现和绑定。 到目前为止最快的是纯Python https://github.com/xtof-durr/makeSimple/blob/master/Munkres/kuhnMunkres.py 我的直觉是,这近似于最佳答案。当在测试映像上运行时,所有其他库都对结果达成了共识,但是这个kuhnMunkres.py虽然快了几个数量级,但是却非常非常接近其他实现所同意的分数。 速度与数据密切相关;蒙娜丽莎(Mona Lisa)在13分钟内冲过kuhnMunkres.py,但猩红胸鹦鹉(Scarlet Chested Parakeet)花了16分钟。 结果与长尾小鹦鹉的随机互换和轮换非常相似: (左侧为kuhnMunkres.py,右侧为随机交换;用于比较的原始图像) 但是,对于我测试过的《蒙娜丽莎》图像,结果得到了明显改善,实际上,她定义的“微笑”闪闪发光: (左侧为kuhnMunkres.py,右侧为随机交换)

7
渲染数万亿个“原子”而不是多边形?
我刚刚看了一段有关发行商称之为“ 3D发明之后的下一个重大步骤”的视频。根据其中一位知情人士的说法,他们使用大量被分组为云的原子而不是多边形来达到无限细节的水平。 他们尽力使不了解任何渲染技术的人都能理解该视频,因此或出于其他目的而忽略了引擎工作原理的所有细节。 他们的视频中的细节水平对我来说确实令人印象深刻。 如何在当前硬件上使用自定义原子而不是多边形来渲染场景?(速度,内存方面) 如果这是真的,为什么到目前为止没有人想到它? 作为OpenGL开发人员,我真的对此感到困惑,并且真的想听听专家怎么说。因此,我也不希望这看起来像廉价的广告,并且仅在需要时在评论部分中包含指向视频的链接。
9 graphics  3d  atom 
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.