是否可以在单个像素内绘制三角形?
例如,当我将三角形顶点的坐标指定为A(0,1),B(0,0)和C(1,0)时。我根本没有看到三角形被渲染。我期待在像素内看到一个小三角形。
我有什么遗失的吗?
答案 0 :(得分:3)
像素是单个点 三角形如何适合单个点?
它是图像的绝对最小单位。
为什么你认为你可以对角渲染半个像素?像素是开启或关闭,它不能是任何其他状态。什么OpenGL规范基于假设,大多数3D库将决定基于填充多少子像素信息来渲染像素。但是一个像素不能被部分绘制,它可以打开或关闭。像素就像一个灯泡,你可以'照亮一半灯泡。
无论如何,所表示的3D坐标空间不会映射到由监视器上绘制的摄像机的图形平面表示的2D空间。
只有在距离相机特定距离的2D平面中使用特定的相机设置和绘制三角形时,您才能尝试以1:1的方式将3D坐标映射到2D坐标,即使这样也不准确在许多情况下。
子像素渲染,并不意味着你认为它意味着什么,它是一种技术/算法来确定像素的哪些RGB元素点亮以及制作它们的颜色,当有很多像素时点亮,特别是在抗锯齿情况下,在2D光栅化显示中考虑周围的像素。无法部分照亮形状中的单个像素,子像素渲染只是以更微妙的方式改变像素的颜色强度和亮度。这仅适用于LCD显示屏。维基百科文章很好地描述了这一点。
在这种情况下,您永远不能在单个像素中绘制三角形。三角形至少需要3个像素才能显示为可能代表三角形的东西:
■
■ ■
和6个像素表示一个光栅化三角形,表示所有三个边。
■
■ ■
■ ■ ■
答案 1 :(得分:3)
像素是显示器可以显示的最小离散单位。像素只能有一种颜色。
因此,虽然OpenGL可以尝试将三角形渲染到像素的一半,但您将看到的只是填充的像素或未填充的像素。抗锯齿可以使填充的颜色不那么强,但颜色来自整个像素的像素都是实心的。
这就是离散图像的本质。
答案 2 :(得分:0)
是否可以在单个像素内绘制三角形?
否!
您可以尝试评估三角形覆盖了多少像素,但是无法仅绘制像素的一部分。像素是光栅化显示设备的最小单位。像素是最小的元素。并且显示设备的像素密度设置可表示分辨率的物理限制。
它背后的数学理论被称为“采样热”,最重要的是你需要知道所谓的奈奎斯特定理。
像素是图片中最终的最小元素也是你无法像在CSI中那样放大图片的原因:纽约,这根本不可能,因为图片中没有更多的信息,因为有像素。 (好吧,如果您有一些额外的信息来源,例如通过组合在较长时间内拍摄的图像并且您可以估计运动,那么它可以将时间信息转换为空间信息,但这是一个不同的故事。)