Her iki grafik API'sı (OpenGL ve DirectX), birkaç aşamanın programlanabilir olduğu iyi tanımlanmış bir boru hattı oluşturur. Bu programlanabilir aşamalar, sabit bir minimum miktarda veri almayı gerektirir ve üzerinde iyi tanımlanmış bir işlem aralığı yapması ve bazı tanımlanmış minimum çıktıları çıkarması gerekir; böylece veriler bir sonraki aşamaya doğru şekilde aktarılabilir. Bu boru hatları, sadece D3D ve OGL durumunda köşe verileri ve doku koordinatları olan sınırlı sayıda geometrik veri türüyle çalışmak üzere tasarlanmış gibi görünüyor.
Ancak, yapmayı planladığım uygulamanın geometrik verilerini temsil etmek için köşeleri (hatta vokselleri) kullanmaması ve API'lerin bu tür sınırlamaları tam olarak dönüşüm veya projeksiyon veya rasterleştirme veya enterpolasyon veya böyle bir şey yapmaması durumunda veya boru hattı işleri zorlaştırır.
Öyleyse, grafik ardışık düzenini her aşamada verilere ve her aşamada çıkan veri türünün işlevselliğinin avantajım olarak değiştirilmesini sağlayacak şekilde değiştirebileceğimiz bir yol var mı? Değilse, kendi boru hattımı oluşturmak için 'raw' API işlevlerini kullanabileceğim bir yol var mı? Değilse, lütfen neden mümkün olmadığını belirtin.
EDIT : Uygulamam, geometriyi temsil etmek için yoğunluk işlevlerini kullanır. İşlev, uzayda her noktada bir değere sahiptir. Kameranın frustum'unu bir 3d ızgaraya bölerim, her blok bir piksel olarak yansıtılabilir. Her blokta yoğunluk fonksiyonunu entegre ederim ve değerinin gerekli bir değerden fazla olup olmadığını kontrol ederim. Eğer evet ise, o blokta bir şey olduğu ve o bloğa karşılık gelen pikselin oluşturulduğu varsayılır. böylece, şimdi benim oluşturucu, tepe tamponları vertex veri yerine (ben bir dize ile temsil) işlevi grafik donanım geçmek istiyorum. bu ayrıca tepe gölgelendiricisinin homojen klip alanına dönüşecek köşelere sahip olmayacağı ve parça gölgelendiricisinin piksel bilgisi almadığı anlamına gelir. bunun yerine, artık arama ve değerlendirmenin çoğu piksel başına gerçekleşir.