Articles of 光栅化

管道中的DirectX11像素着色器缺失

我正在编写一个使用DirectX显示MS3D模型的程序,不幸的是,结果在屏幕上什么也没有显示。 当我从Visual Studio 13使用graphicsdebugging器时,我注意到像素着色器从管道中丢失,如下图所示 这是我的像素着色器源代码: cbuffer SkinningTransforms { matrix WorldMatrix; matrix ViewProjMatrix; }; //——————————————————————————– // Inter-stage structures //——————————————————————————– struct VS_INPUT { float3 position : POSITION; int4 bone : BONEID; float4 weights : BONEWEIGHT; float3 normal : NORMAL; float3 tangent : TANGENT; float2 tex : TEXCOORD; }; //——————————————————————————– struct VS_OUTPUT { float4 position : SV_Position; float3 […]

(XNA)没有模糊的拉伸图像(Sprites)(栅格化?)

感谢您点击这个问题,虽然它可能是在这个网站上最不具体和混乱的标题之一。 我对XNA有点新鲜,我只在这个网站上发布了一个问题,在这之前我完全不明白答案,但是我会再给它一个答案。 我期待创建一个游戏,让用户可以全屏或重新调整窗口的大小预设值,就像现在许多主stream游戏允许你做的那样。 我相信我知道如何在XNA中做到这一点,问题是,当我切换全屏,它拉伸的精灵,他们显得模糊。 我知道这是一个非常明显的问题,因为拉伸=模糊(逻辑上)。 事情是,我想知道是否有一种方法可以使得它不管缩放,你的精灵看起来很脆而不模糊? 我问了我现实生活中的一个朋友,他说了一些关于光栅化(我不知道什么)的东西。 唯一的我能想到的其他事情 我已经看到这在Flash中做了几次。 对于我的意思是我能想到的唯一的游戏的例子是超级粉碎闪光2.看起来不管屏幕的大小,大部分的精灵和图像显示清脆,即使在最大的屏幕上。 如果有人对此有所了解,请分享! -谢谢。

如何操作Phong着色器的插值法线?

我目前正在实现一个小型的3D光栅化器,而且我被困在Phong着色器中。 我到现在为止有什么: – 我正在绘制一个立方体,我对每个顶点都有一个位置和法线。 – 我也有光的位置。 – 我可以使用重心技术插入正常的转换器。 2.problem: 我将所有的位置转换为屏幕坐标 void Rasterizer::drawTriangle(Vertex p_v0, Vertex p_v1, Vertex p_v2) { Vertex v0(Mat4::ConvertToScreen(p_v0.position, m_rtexture.GetWidth(), m_rtexture.GetHeight())); Vertex v1(Mat4::ConvertToScreen(p_v1.position, m_rtexture.GetWidth(), m_rtexture.GetHeight())); Vertex v2(Mat4::ConvertToScreen(p_v2.position, m_rtexture.GetWidth(), m_rtexture.GetHeight())); Triangle triangle(v0, v1, v2); AABB box = triangle.getAABB(); int minX = std::max((int)box.minPoint.x, 0); int minY = std::max((int)box.minPoint.y, 0); int maxX = std::min((int)box.maxPoint.x, m_rtexture.GetWidth() – 1); […]

保持光栅化像素量不变

我使用正交投影matrix从光的角度呈现了一个场景。 对于不以任何方式改变其形状或大小的任意形状和朝向的对象,被光栅化的像素量随其位置而变化。 我想最好用图像来解释一下: 四边形的深度(它们的y坐标)是恒定的。 它们的x和z坐标稍有不同。 但是,由于它是一个正交投影matrix,因此它们的“世界空间”浮点大小与从相机中看到的相同。 只是在一种情况下,另外一行像素被光栅化(我用mspaint绘制了两条白线来说明它们的尺寸差异)。 这对我的应用程序是非常不利的。 有没有办法保持光栅化像素的数量一致? 我将如何去实现它使用OpenGL?

我们从顶点着色器传递给像素着色器的坐标是什么?

我已经阅读了关于着色器编程的文章,并了解了着色器编程的基本知识。 我总是感到困惑的一件事是关于纹理映射。 我从VS传递(输出)到PS是顶点位置和纹理坐标。 我明白,在VS中,我们可以简单地select传递顶点位置,或者在这里操作顶点位置(可能更多)。 所以我们最终通过的是vetex的位置。 但是…我还不清楚,我们正在通过的纹理坐标或紫外线? 如果我理解正确,如果我的模型是由3个顶点组成的简单三角形,VS将为每个顶点运行三次,并且我正在传递顶点的位置。 它直线前进。 但是纹理是什么? 说,我使用50×50 JPG图像作为纹理。 3个顶点如何映射到这个50×50像素的纹理? 从前几天我开始阅读的书中解释说,光栅化器是将顶点分组以形成三角形并计算三角形中的像素数的那个。 但是,对于我来说,我们还不清楚,我们作为纹理坐标传递给VS?

我怎样才能用软件光栅化三维三角形?

我正在创建一个3D软件渲染器,并且我有一个线框立方体渲染。 现在我正在进行纯色渲染,我想知道一个有效的algorithm来渲染三角形的内容是什么?

使用Bresenham线algorithm从每个角度绘制线条

我正在尝试重新创建一个这样的图像 …或者只是每个点 使用Bresenham线algorithm,但似乎无法做到这一点..我从我的计算得到的观点看起来不像一个像,从不同角度的输出是没有意义的。 我从中心(3,3)开始,想要以给定的半径以一定角度进行绘制。 angle: 1 13,19 bressenham: mark: 3,3 mark: 3,3 mark: 4,4 mark: 4,4 mark: 5,5 mark: 5,5 mark: 6,6 mark: 6,6 mark: 7,7 mark: 7,7 mark: 8,8 mark: 8,8 mark: 9,9 mark: 9,9 mark: 10,10 mark: 10,10 mark: 11,11 mark: 11,11 mark: 12,12 mark: 12,12 1319 angle: 2 -5,21 bressenham: mark: -5,3 […]

在光栅化过程中如何获得三角形ID?

我想知道每个渲染像素的三角形ID是从哪里来的。 有没有办法在OpenGL中做到这一点?

扭曲点云的渲染更复杂吗?

我有两点n点云: 内部有许多点的密集的球形点云 表面上有点的球形点云。 这两个点云的渲染(复杂度/时间)有没有区别? 点的变形如何影响栅格化过程的复杂性?

使用原始图像数据进行透明度的软件多边形光栅化

我有一个图像的形状(正方形和不同颜色散布在图像中的三角形),我有一个algorithm匹配的图像,并从图像原始数据(无符号char *)提取几何顶点和提取的顶点是正确的我已经检查了主题毫无疑问的主题。 现在我已经从原始图像数据中获得了正方形和三角形的顶点。 我怎样才能用透明度填充顶点内的像素,使它们成为删除的形状? PS:我得到的顶点只是一个点数组,每个点都有x和y属性,原始图像数据是rgba8888(32位)。