Desenhar curva quadrática na GPU

Minha tarefa é renderizar a curva quadrática de Bezier (caminho) por meio da tecnologia Stage3d (Adobe Flash), que não possui extensões para esse desenho pronto para uso (enquanto o OpenGl o possui, como eu sei). Sim, existe um Starling-Extension-Graphics, mas ele usa um método simples para dividir um segmento de curva em muitas linhas retas, que gera muitos triângulos para o meu caminho de curva longa.

Portanto, existe uma maneira perfeita de renderizar formas independentes de resolução para Loop e Blinn. Eu li o artigo GPUGems3 (gpugems3_ch25.html) e enviei esse shader de fragmento para AGAL2:

Shader de pixel de curva quadrática

float4 QuadraticPS(float2 p : TEXCOORD0,  
  float4 color : COLOR0) : COLOR  
{  
  // Gradients  
   float2 px = ddx(p);  
   float2 py = ddy(p);  
  // Chain rule  
   float fx = (2*p.x)*px.x - px.y;  
   float fy = (2*p.x)*py.x - py.y;  
  // Signed distance  
   float sd = (p.x*p.x - p.y)/sqrt(fx*fx + fy*fy);  
  // Linear alpha  
   float alpha = thickness - abs(sd);  
  if (alpha > 1)       // Inside  
    color.a = 1;  
  else if (alpha < 0)  // Outside  
    clip(-1);  
  else                   
  // Near boundary  
    color.a = alpha;  
    return color;  
}  

Funciona. Mas existem dois problemas fundamentais:

Eu não entendo esse algoritmo :(. Eu li sobre campo de distância assinado, derivadas e outras ... Pensei muitas horas e li novamente - mas sem resultado! Minha pergunta é:Alguém me ajuda e explica o que acontece nesse sombreador (linha por linha (!), Se possível)?

O segundo problema é quea curva é cortada no canto do triângulo e tem uma espessura variável. Por favor, olhe a imagem:https://monosnap.com/file/84EBOuQ1czNM5lprQ5VlnRUKP2mKmW Então, se eu traçar um caminho, fica assim:https://monosnap.com/file/54Zs5Xui6s3BL6lNdZRCx9ibcV2bCF

Eu gosto desse método usando um triângulo por segmento de curva, porque nenhuma geometria é necessária. E não preciso ter curvas muito grossas (1-2 px é excelente), mas uma espessura variável é um problema. Alguém pode me ajudar?

(Desculpe pelo meu inglês. Não é minha língua nativa.)

edit1 por Spektre acabou de mudar de comentário e resposta inválida

Eu pretendo usar um triângulo por segmento de uma curva, algo como na imagem

o caminho consiste em muitos triângulosum por segmento de caminho (curva quadrática)Como lidar com problemas com essa abordagem se todos os pontos de controle são colineares (ficam na mesma reta) ou quase colineares?

questionAnswers(1)

yourAnswerToTheQuestion