小编Rol*_*iga的帖子

Bézier曲线,Loop和Blinn风格

几天前,我开始研究有效绘制bezier曲线,我遇到了Charles Loop和Jim Blinn开发的这种方法,看起来非常有趣.然而,经过大量的算法实验,我似乎无法让它能够渲染三次曲线.Quadratics很好,没问题.

我到目前为止找到的唯一资源如下:

GPU宝石3第25章

弯曲的蓝调

使用可编程图形硬件的分辨率独立曲线渲染

为了快速启动和运行测试,我在XNA中这样做.基本上我将纹理坐标与我的顶点一起传递给GPU,应用透视变换并使用像素着色器中所有文章中提到的公式来渲染最终结果.然而,问题(我认为)在于如何计算纹理坐标.检查此代码:

public void Update()
{
    float a1 = Vector3.Dot(p1, Vector3.Cross(p4, p3));
    float a2 = Vector3.Dot(p2, Vector3.Cross(p1, p4));
    float a3 = Vector3.Dot(p3, Vector3.Cross(p2, p2));

    float d1 = a1 - 2 * a2 + 3 * a3;
    float d2 = -a2 + 3 * a3;
    float d3 = 3 * a3;

    float discr = d1 * d1 * (3 * d2 * d2 - 4 * d1 * d3);

    if (discr > 0)
    {
        Type …
Run Code Online (Sandbox Code Playgroud)

c# graphics xna bezier hlsl

9
推荐指数
1
解决办法
2135
查看次数

标签 统计

bezier ×1

c# ×1

graphics ×1

hlsl ×1

xna ×1