问题标签 [rasterizing]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - 一条线穿过的所有点
我需要找到一条线上的所有点。我尝试了 Bresenham 的算法,但它不适用于以下情况:
X
是实际的线,.
是 Bresenham 的算法返回的,注意线交叉(1, 0)
但没有标记。
如何有效地找到一条线穿过的所有像素?我不需要这种抗锯齿,所以我认为 Wu 的算法有点矫枉过正。线端点位于像素的中间。
参考我的算法是:
c++ - Qt圆角矩形,为什么角不一样?
我尝试drawRoundedRect
直接在 a 中使用方法绘制一个圆形矩形QPixmap
(这里没有渲染引擎涉及纯 Qt 一个......),我仔细检查了矩形的大小与我的像素图的大小:
看到足够的空间...
编辑:一些代码
- 我禁用了世界转换...
- 我将集合转换设置为统一...
- 我尝试了几个半径(1.0,2.0,3.0,4.0)...
- 我改变笔宽,画笔颜色......
但它总是以一个有 4 个不同角的矩形结束!像那样 :
我直接将像素图输出到一个文件中,以确保在显示过程中没有刮掉它……相同的形状。
有人知道小半径的Qt圆形矩形吗?我很久以前就看到了它的东西,但我不记得如何处理它!
3d - 如何栅格化 3d 网格?
我有一个 3d 网格(一组三角形),它定义了一个封闭的防水表面。我想光栅化这个网格,即将网格占用的空间划分为均匀的小立方体(相当于 2d 像素的 3d),并将三角形穿过的立方体涂成黑色,其余的涂成白色。例如,类似于将 2d 矢量图形图像光栅化为光栅化 bmp 的方式。换句话说,我想输出一个 3d 数组,A
也就是说M x M x M
,A(i,j,k)
如果有某个三角形穿过该位置的立方体占据的空间,则为 1 i,j,k
。希望这很清楚,如果不是 - 告诉我,我会澄清。
任何算法、库、matlab 例程都可以。
c++ - C++ 三角形光栅化
我正在尝试修复此三角形光栅化器,但无法使其正常工作。由于某种原因,它只绘制了一半的三角形。
这是我用它来绘制形状时发生的情况。
当我禁用第二个区域时,所有那些奇怪的三角形都会消失。
线框模式完美运行,因此消除了除三角形光栅器之外的所有其他可能性。
vector-graphics - 光栅化矢量图像的通用算法
光栅化矢量图像的一般算法是什么?我发现了很多光栅化基元的算法,如直线、圆、贝塞尔曲线等。但一般来说,我该怎么办?简单地说,在矢量图中寻找每个矢量图,获取它的像素并将它们放入光栅图像中?或者是其他东西?
还有一个问题,如何提高并发处理的时间?例如,我可以分离矢量图并同时获取它们的像素。但也许还有其他方法可以做到这一点?
performance - 为什么 Bresenham 的线算法比 Naive 算法更有效
在我的图形课程中,我们学习了 Naive 线光栅化算法,然后是 Bresenham 的线条绘制算法。我们被告知计算机是整数机器,这就是我们应该使用后者的原因。
如果我们假设没有软件级别的优化,那么对于具有 mmx 和其他指令集的现代 cpu 来说是否如此?正如我查看了英特尔的 64-ia-32-architectures-optimization-manual.pdf 并且与 mmx 的 int 相比,float 的加减乘法延迟相同或更好。
如果算法在 gpu 中执行,这应该重要吗?已检查NVIDIA CUDA Programming Guide 1.0 (pdf),第 41 页,int 和 float 的时钟周期是相同的。
将 float 转换为 int 的效率低下是什么?load-hit-store 失速对我们来说是一个真正的问题吗?
向上/向下舍入数字的函数的效率如何?(我们可以想到c++ stl中的实现)
Bresenham 算法的效率是由于加法而不是内循环中使用的乘法吗?
math - 获取任意二维三角形的扫描线
如何检索二维三角形中所有线的扫描线?
我正在尝试实现 2D 软件渲染器的最基本功能,即纹理映射三角形。我这样做的次数比使用 OpenGL 的次数还多,但我发现自己在尝试自己做时一瘸一拐。
我看到很多文章说,为了填充一个三角形(三个顶点的纹理坐标都被钳制为 [0, 1]),我需要在三个点之间进行线性插值。什么?我认为插值是在两个 n 维值之间。
笔记; 这不适用于 3D,它是严格的 2D,所有三角形都是任意的(不以任何方式轴对齐)。我只需要像 OpenGL 那样用它们的纹理填充屏幕。我不能使用 OpenGL 作为解决方案。
algorithm - 栅格化椭圆
是否有一种有效的算法可以找到一般椭圆中像素的指示?
本质上,我想做的是在二维数组中找到索引,该数组对应于跨越可能数组索引的“二维表面”的参数化椭圆。就像我上面的第一个问题一样,这个问题可以与椭圆的光栅化进行比较。
我找到了一些扫描线算法,它们可以对轴对齐的椭圆执行我想要的操作,但现在我想知道对于倾斜和旋转的椭圆是否有类似的算法。必须有,因为那里的矢量图形软件设法填充倾斜和/或旋转的椭圆。
为了澄清我的意思,我最近在这里解决了一个类似的问题:二维数组中的特殊多边形for循环
/缺口
java - 在 Java 中栅格化三角形
是否有一个 Java 图形库可以在给定顶点坐标的情况下栅格化三角形?
我正在尝试分析由三个点定义的三角形区域的图像像素值。我在内存中有像素值,所以我只想找出三角形中有哪些像素并遍历它们。迭代的顺序无关紧要,只要我访问每个像素一次。
我已经对算法进行了一些搜索,我想我可以基于Triangle Rasterization for Dummies或Introduction to Software-based Rendering实现我自己的代码,但如果我忽略了一些已经实现这一点的库,我会觉得很愚蠢。
我简要地研究了让Java 与 GPU 对话,但这似乎太麻烦了。
pdf - 用光栅图像替换 PDF 中的矢量图像
是否有任何简单(可编写脚本)的方法将带有矢量图像的 PDF 转换为带有光栅图像的 PDF?换句话说,我想生成一个具有完全相同(未光栅化)文本但每个矢量图像都替换为光栅化版本的 PDF。
我偶尔会在 Kindle 上阅读技术文章的 PDF,发现直接阅读 PDF 令人沮丧。值得庆幸的是,亚马逊将 PDF自动转换为 Kindle 格式在重排我尝试过的大多数 PDF 的文本部分方面做得很好。然而,虽然光栅图像似乎可以很好地完成转换过程,但矢量图像却被严重破坏。如果我可以轻松地转换 PDF 以便其所有矢量图像都被光栅化,那就太好了。
我对任何可能的解决方案都感兴趣,但基于 Linux 或 Windows 的解决方案会更好。