Aracılığıyla paylaş


Tessellating Polygons

OpenGL doğrudan yalnızca basit dışbükey poligonları görüntüleyebilir. Çokgen, şu durumlarda basittir:

  • Kenarlar yalnızca köşelerde kesişir.
  • Yinelenen köşe yok.
  • Tam olarak iki kenar herhangi bir köşede bir araya gelecek.

Basit dışbükey olmayan poligonları veya delik içeren basit poligonları görüntülemek için, önce poligonları üçgene ayırmanız gerekir (bunları dışbükey poligonlara ayırmalısınız). Bu tür alt bölüm tessellationolarak adlandırılır. GLU, mozaikleme gerçekleştiren bir işlev koleksiyonu sağlar. GLU tessellation işlevlerinin nonsimple poligonları işleyebildiğini unutmayın; bu tür çokgenleri işlemek için standart bir OpenGL yöntemi yoktur.

Tessellation genellikle gerekli olduğundan ve oldukça karmaşık olabileceğinden, bu bölümde GLU tessellation işlevleri ayrıntılı olarak açıklanmaktadır. Bu işlevler, delikler içerebilen rastgele basit çokgenler olarak giriş olarak alır ve üçgenler, üçgen kafesler ve üçgen fanların bir bileşimini döndürür. Tireler veya fanlarla uğraşmak istemiyorsanız, mozaik işlevlerinin yalnızca üçgenler döndüreceğini belirtebilirsiniz. Ancak mesh ve fan bilgileri performansı artırır. Çokgen tessellation işlevleri bir veya daha fazla kontur ile bir konkas poligon üçgen.

Çokgen mozaik kullanmak için

  1. gluNewTessile bir tessellation nesnesi oluşturun.

  2. Tessellator tarafından oluşturulan üçgenleri işlemek için kullanacağınız geri çağırma işlevlerini tanımlamak için gluTessCallBack kullanın.

  3. gluBeginPolygon, gluTessVertex, gluNextContourve gluEndPolygon, delikli poligonu veya döşeme yapılacak konkave poligonunu belirtin.

    Çokgen açıklaması tamamlandığında, tessellation tesisi gerektiğinde geri çağırma işlevlerinizi çağırır.

    gereksiz mozaik nesnelerini gluDeleteTessile yok edebilirsiniz.

Mozaik verilerini kaydetme hakkında daha fazla bilgi için bkz. Geri Çağırma İşlevlerini Kullanma.