@Femid
Мутант

Почему часть нарисованного прямоугольника не отображается?

Я пытаюсь рисовать простые примитивы на объекте Plain на который наложена текстура с помощью самого простого материала. Для рисования я пытаюсь использовать OpenGL. Но почему-то при рисовании и просмотре через камеру нарисованное отображается не полностью, определённая зона постоянно не окрашивается. Причём если менять угол поворота поверхности эти зоны меняются,но если во время проигрывания посмотреть сцену то окрашивается всё.
Я попытался отодвинуть нарисованное по оси OZ, но при повороте камеры это не решает проблемы, также я пытался менять параметры шейдера - это тоже не дало результатов.
public class Faster_Prog_drawing : MonoBehaviour { 
static Material lineMaterial;
static void CreateLineMaterial()
{
    if (!lineMaterial)
    {
        // Unity has a built-in shader that is useful for drawing
        // simple colored things.
        Shader shader = Shader.Find("Hidden/Internal-Colored");
        lineMaterial = new Material(shader);
        lineMaterial.hideFlags = HideFlags.HideAndDontSave;
        // Turn on alpha blending

        //lineMaterial.SetInt("_SrcBlend", (int)UnityEngine.Rendering.BlendMode.SrcAlpha);
        //lineMaterial.SetInt("_DstBlend", (int)UnityEngine.Rendering.BlendMode.OneMinusSrcAlpha);
        //lineMaterial.SetInt("_SrcBlend", 5);
        //lineMaterial.SetInt("_DstBlend", 100);

        // Turn backface culling off
        lineMaterial.SetInt("_Cull", (int)UnityEngine.Rendering.CullMode.Off);
        // Turn off depth writes
        lineMaterial.SetInt("_ZWrite", 0);
    }
}
public void OnRenderObject()
 {
     CreateLineMaterial();

     lineMaterial.SetPass(0);

     GL.PushMatrix();
     DrawRect(5f, 5f, 10f, 10f);   
     GL.PopMatrix();

 }
void DrawRect(float x, float y, float width, float height)
{


    GL.Begin(GL.QUADS);
    GL.Vertex3(x , y , 0.000001f);
    GL.Vertex3(x , (y - height), 0.000001f);
    GL.Vertex3((x - width), (y - height), 0.000001f);
    GL.Vertex3((x - width), y , 0.000001f);
    GL.End();

}
}

6554c5b395daf560508683.png
6554c5fbe444c076682450.png

С чем это может быть связано и как это исправить?
  • Вопрос задан
  • 72 просмотра
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы