Paket | flash.display3D |
Sınıf | public final class Program3D |
Miras Alma | Program3D Object |
Dil Sürümü: | ActionScript 3.0 |
Çalışma Zamanı Sürümleri: | Flash Player 11, AIR 2 |
Bir Program3D nesnesinin yönettiği programlar, Context3D drawTriangles()
çağrısı sırasında üçgenlerin oluşturulma işleminin tamamını denetler. upload
yöntemini kullanarak ikili bayt kodunu oluşturma bağlamına yükleyin. (Yüklendikten sonra, orijinal bayt dizisindeki verilere artık başvurulmaz. Kaynak diziyi değiştirmek veya kaldırmak programı değiştirmez.)
Programlar her zaman iki bağlantılı bölümden oluşur: Bir köşe ve parça programı.
- Köşe programı, VertexBuffer3D nesnelerinde tanımlanan veriler üzerinde çalışır ve köşe noktalarını klip alanına yansıtmak ve renk gibi gerekli köşe verilerini parça gölgelendiricisine iletmekle görevlidir.
- Parça gölgelendirici kendisine köşe programının ilettiği nitelikler üzerinde çalışır ve bir üçgenin rasterleştirilmiş her parçası için bir renk üretir. Bu renkler de piksel renkleridir. Parça programının 3B programlama dilinde, parça gölgelendirici ve piksel gölgelendirici gibi birden fazla adı olduğunu unutmayın.
Karşılık gelen Program3D örneğini Context3D setProgram()
yöntemine ileterek sonraki oluşturma işlemleri için hangi program çiftinin kullanılacağını belirleyin.
Bir Program3D nesnesini doğrudan oluşturamazsınız. Bunun yerine Context3D createProgram()
yöntemini kullanın.
İlgili API Öğeleri
Yöntem | Tanımlayan: | ||
---|---|---|---|
Bu nesneyle ilişkili tüm kaynakları boşaltır. | Program3D | ||
Bir nesnenin belirli bir özelliğinin tanımlı olup olmadığını gösterir. | Object | ||
Object sınıfının bir örneğinin parametre olarak belirtilen nesnenin prototip zincirinde olup olmadığını gösterir. | Object | ||
Belirtilen özelliğin bulunup bulunmadığını ve numaralandırılabilir olup olmadığını gösterir. | Object | ||
Dinamik bir özelliğin döngü işlemlerinde kullanılabilirliğini ayarlar. | Object | ||
Bu nesnenin, yerel ayara özel kurallara göre biçimlendirilmiş dize temsilini döndürür. | Object | ||
Belirtilen nesnenin dize olarak temsil edilen halini döndürür. | Object | ||
AGAL (Adobe Grafikleri Çevirici Dili - Adobe Graphics Assembly Language) bayt kodunda ifade edilen bir çift oluşturma programı yükler. | Program3D | ||
Belirtilen nesnenin temel değerini döndürür. | Object |
dispose | () | yöntem |
public function dispose():void
Dil Sürümü: | ActionScript 3.0 |
Çalışma Zamanı Sürümleri: | Flash Player 11, AIR 3 |
Bu nesneyle ilişkili tüm kaynakları boşaltır. Bir Program3D nesnesini attıktan sonra bu nesneyi kullanarak yapılan upload() çağrısı ve oluşturma başarısız olur.
upload | () | yöntem |
public function upload(vertexProgram:ByteArray, fragmentProgram:ByteArray):void
Dil Sürümü: | ActionScript 3.0 |
Çalışma Zamanı Sürümleri: | Flash Player 11, AIR 3 |
AGAL (Adobe Grafikleri Çevirici Dili - Adobe Graphics Assembly Language) bayt kodunda ifade edilen bir çift oluşturma programı yükler.
Program bayt kodu Pixel Bender 3B çevrimdışı araçları kullanılarak oluşturulabilir. Ayrıca dinamik olarak da oluşturulabilir. AGALMiniAssembler sınıfı, AGAL çeviri dili programlarını AGAL bayt kodu ile derleyen bir yardımcı program sınıfıdır. Bu sınıf çalışma zamanının bir parçası değildir. Gölgelendirici programlarını yüklediğinizde, bayt kodu geçerli aygıt (örneğin, OpenGL veya Direct3D) için yerel gölgelendirici dili ile derlenir. Çalışma zamanı, yüklemede bayt kodunu doğrular.
Context3D drawTriangles()
yöntemi her kullanıldığında programlar çalışır. Köşe programı, çizilecek üçgenler listesindeki her köşe için bir kez çalıştırılır. Parça programı bir üçgen yüzeyindeki her piksel için bir kez çalıştırılır.
Bir gölgelendirici programı tarafından kullanılan "değişkenlere" kayıtlar denir. Aşağıda kayıtlar tanımlanmıştır:
Ad | Parça programı başına sayı | Köşe programı başına sayı | Amaç |
---|---|---|---|
Nitelik | yok | 8 | Context3D.setVertexBufferAt() kullanarak belirtilen bir köşe arabelleğinden okunan köşe gölgelendirici girdisi. |
Sabit | 28 | 128 | İşlevlerin Context3D.setProgramConstants() ailesini kullanarak ayarlanan gölgelendirici girdisi. |
Geçici | 8 | 8 | Programın dışından erişilmeyen geçici hesaplama kaydı. |
Çıktı | 1 | 1 | Gölgelendirici çıktısı: Bir köşe programında, çıktı klip alanı konumu; bir parça programında ise renktir. |
Değişken | 8 | 8 | Köşe ve parça gölgelendiriciler arasında enterpolasyonlu verilerin aktarımını yapın. Köşe programındaki değişken kayıtları parça programına girdi olarak uygulanır. Değerler, üçgenin köşe noktalarından olan uzaklığa göre enterpolasyonlanır. |
Örnekleyici | 8 | yok | Context3D.setTextureAt() kullanarak belirlenen bir dokudan okunan parça gölgelendirici girdisi. |
Bir köşe programı iki kaynaktan girdi alır: köşe arabellekleri ve sabit kayıtları. Belirli bir köşe nitelik kaydı için hangi köşe verilerinin kullanılacağını Context3D setVertexBufferAt()
yöntemini kullanarak belirtin. Köşe nitelikleri için en fazla sekiz girdi kaydı tanımlayabilirsiniz. Köşe niteliği verileri, üçgen listesindeki her köşe için köşe arabelleğinden okunabilir ve nitelik kaydına yerleştirilir. Context3D setProgramConstantsFromMatrix()
veya setProgramConstantsFromVector()
yöntemlerini kullanarak sabit kayıtlarını belirtin. Sabit kayıtları, üçgen listesindeki her bir köşe için aynı değeri korur. (Sabit değerleri yalnızca drawTriangles()
çağrıları arasında değiştirebilirsiniz.)
Köşe programı üçgenin köşe noktalarını klip alanına yansıtmak (kurallı görüntüleme alanı x ve y eksenlerinde ±1; z ekseninde 0-1'dir) ve dönüştürülen koordinatları çıktı kaydına yerleştirmekle görevlidir. (Genel olarak ortalama yansıtma matrisi gölgelendiriciye bir sabit kayıtlar dizisi ile sağlanır.) Köşe programı ayrıca parça programı için gereken herhangi bir köşe niteliğini veya hesaplanmış değerleri, değişken kayıtları adı verilen bir dizi özel değişkene kopyalamalıdır. Bir parça gölgelendirici çalıştığında, değişken kaydının verdiği değer; geçerli parçanın üçgenin her bir köşesine olan uzaklığına göre doğrusal olarak enterpolasyonlanır.
Bir parça programı girdiyi değişken kayıtlarından ve ayrı bir dizi sabit kaydından (setProgramConstantsFromMatrix()
veya setProgramConstantsFromVector()
ile ayarlanan) alır. Ayrıca doku verilerini örnekleyici kayıtlarını kullanarak oluşturma bağlamına yüklenen dokulardan okuyabilirsiniz. Belirli bir örnekleyici kaydı kullanarak hangi dokuya erişileceğini setTextureAt()
yöntemini kullanarak belirtin. Parça programı, çıktı kaydını bir renk değerine ayarlamakla görevlidir.
Parametreler
vertexProgram:ByteArray — Köşe programına yönelik AGAL bayt kodu. ByteArray nesnesi, little endian biçimini kullanmalıdır.
| |
fragmentProgram:ByteArray — Parça programına yönelik AGAL bayt kodu. ByteArray nesnesi, little endian biçimini kullanmalıdır.
|
Atar
TypeError — Boş İşaretçi Hatası: vertexProgram veya fragmentProgram boş olursa.
| |
Error — Nesne Atıldı: Program3D nesnesi dispose() öğesine yapılan bir çağrı tarafından doğrudan veya Context3Ddispose() öğesinin çağrılmasıyla dolaylı olarak atıldıysa ya da oluşturma bağlamı aygıt kaybı nedeniyle atıldıysa.
| |
ArgumentError — Agal Programı Çok Küçük: herhangi bir program kodu dizisi 31 bayt uzunluğundan daha küçük olduğunda. Bu boyut, bir yönergeli programın gölgelendirici bayt kodu boyutudur.
| |
ArgumentError — Program Little Endian Olmalıdır: program bayt kodu dizilerinden herhangi biri little endian değilse.
| |
Error — Yerel Gölgelendirici Derlemesi Başarısız Oldu: AGAL çeviricisinin çıktısı derlenebilir yerel bir gölgelendirici dili programı değilse. Hata, yalnızca bırakma yürütücülerinde oluşturulur.
| |
Error — Yerel Gölgelendirici Derlemesi OpenGL için Başarısız Oldu: AGAL çeviricisinin çıktısı derlenebilir OpengGL gölgelendirici dili programı değilse ve derleme tanılaması içeriyorsa. Bu hata, yalnızca hata ayıklama oynatıcılarında oluşturulur.
| |
Error — Yerel Gölgelendirici Derlemesi Başarısız Oldu D3D9: AGAL çeviricisinin çıktısı derlenebilir bir Direct3D gölgelendirici dili programı değilse ve derleme tanılaması içeriyorsa. Bu hata, yalnızca hata ayıklama oynatıcılarında oluşturulur.
AGAL bayt kodu doğrulaması başarısız olduğunda aşağıdaki hatalar atılır: | |
Error — Agal Programı Değil: Üstbilgi "sihirli bayt" yanlış olduğunda. Bayt kodunun ilk baytı 0xa0 olmalıdır. Bu hata, bayt dizisinin yanlış endian sırasına ayarlandığını gösterir.
| |
Error — Uygun Olmayan Agal Sürümü: AGAL sürümü o andaki SWF sürümü tarafından desteklenmiyorsa. AGAL sürümü, SWF 13 sürümü için 1'e ayarlanmalıdır.
| |
Error — Uygun Olmayan Agal Programı Türü: AGAL programı türü kimliği geçersizse. Bayt kodundaki üçüncü bayt 0xa1 olmalıdır. Bu hata, bayt dizisinin yanlış endian sırasına ayarlandığını gösterebilir.
| |
Error — Uygun Olmayan Gölgelendirici Türü: Gölgelendirici türü kodu parça veya köşe değilse (1 veya 0).
| |
Error — Geçersiz Agal İşlem Kodu Aralığın Dışında: Belirteç akışında geçersiz bir işlem kodu ile karşılaşıldığında.
| |
Error — Geçersiz Agal İşlem Kodu Kullanılmadı: Belirteç akışında geçersiz bir işlem kodu ile karşılaşıldığında.
| |
Error — Agal İşlem Koduna Yalnızca Parça Programında İzin Veriliyor: KIL veya TEX gibi, bir işlem koduyla yalnızca parça programlarında izin verilen köşe programının belirteç akışında karşılaşılıyorsa.
| |
Error — Uygun Olmayan Agal Kaynak İşlenenleri: Her iki kaynak işleneni de sabit kayıtlarsa. Sonucu gölgelendirici programının dışında hesaplamanız ve tek bir sabit kaydı kullanarak programa iletmeniz gerekir.
| |
Error — Her İki İşlenen Dolaylı Okumalar Şeklinde: Her iki işlenen de dolaylı okumalarsa.
| |
Error — İşlem Kodu Hedefinin Tamamı Sıfır Olmalı: Hedefi olmayan bir işlem koduna sahip (KIL gibi) bir belirteç hedef kaydı için sıfır olmayan bir değer ayarlarsa.
| |
Error — İşlem Kodu Hedefi Maske Kullanmalı: Yalnızca 3 bileşen sonucu veren bir işlem kodu maskeleme olmadan kullanılırsa.
| |
Error — Çok Fazla Belirteç: Bir AGAL programında çok fazla belirteç varsa (200'den fazla).
| |
Error — Parça Gölgeleyici Türü: Parça programı türü (fragmentProgram parametresinin bayt 6'sı) 1 olarak ayarlanmadıysa.
| |
Error — Köşe Gölgeleyici Türü: Köşe programı türü (vertexProgram parametresinin bayt 6'sı) 0 olarak ayarlanmadıysa.
| |
Error — Değişken Okunuyor Ancak İçine Yazılmıyor: Parça gölgeleyici, köşe gölgeleyicinin hiçbir şekilde içine yazamadığı bir değişken kaydını okuyorsa.
| |
Error — Değişkene Kısmen Yazılıyor: Bir değişken kaydına yalnızca kısmen yazılıyorsa. Bir değişken kaydının tüm bileşenlerine yazılmalıdır.
| |
Error — Parçaya Tüm Bileşenler Yazılıyor: Bir parça rengi çıktısına yalnızca kısmen yazılıyorsa. Renk çıktısının dört bileşenin tümüne yazılmalıdır.
| |
Error — Köşeye Tüm Bileşenler Yazılıyor: Bir köşe klibi çıktısına yalnızca kısmen yazılıyorsa. Köşe klip alanı çıktısının tüm bileşenlerine yazılmalıdır.
| |
Error — Kullanılmamış İşlenen: bir belirteçteki kullanılmamış işlenen tamamen sıfır olarak ayarlanmadıysa.
| |
Error — Yalnızca Parçada Örnekleyici Kaydı: doku örnekleyici kaydı bir köşe programında kullanılırsa.
| |
Error — Örnekleyici Kaydının İkinci İşleneni: örnekleyici kaydı bir hedef veya AGAL belirtecinin birinci işleneni olarak kullanılırsa.
| |
Error — Köşede Yalnızca Dolaylı İşleme İzin Verilir: dolaylı adresleme bir parça programında kullanılırsa.
| |
Error — Yalnızca Sabit Kayıtlarda Dolaylı: dolaylı adresleme sabit olmayan bir kayıtta kullanılırsa.
| |
Error — Dolaylı Kaynak Türü: dolaylı kaynak türü nitelik, sabit veya geçici kayıt değilse.
| |
Error — Dolaylı Adresleme Alanları Sıfır Olmalıdır: dolaylı adresleme alanlarının tümü doğrudan adresleme için sıfır değilse.
| |
Error — Değişken Kayıtlar Yalnızca Parçada Okunur: değişken bir kayıt köşe programında okunursa. Değişken kayıtlar yalnızca köşe programlarında yazılabilir ve parça programlarında okunabilir.
| |
Error — Nitelik Kayıtları Yalnızca Köşede Okunur: nitelik kaydı bir parça programında okunursa. Nitelik kayıtları yalnızca köşe programlarında okunabilir.
| |
Error — Çıktı Kaydı Okunamıyor: çıktı (konum veya renk) kaydı okunursa. Çıktı kayıtları yalnızca yazılabilir, bunlar okunamaz.
| |
Error — Geçici Kayıt Yazma İşlemi Olmadan Okundu: geçici bir kayıt, üzerine daha önce yazılmadan okunursa.
| |
Error — Geçici Kayıt Bileşeni Yazma İşlemi Olmadan Okundu: belirli bir geçici kayıt bileşeni, üzerine daha önceden yazılmadan okunursa.
| |
Error — Örnekleyici Kaydına Yazılamıyor: bir örnekleyici kaydına yazılırsa. Örnekleyici kayıtları yalnızca okunabilir, bunların üzerine yazılamaz.
| |
Error — Değişken Kayıtları Yazma: değişken bir kayıt parça programına yazılırsa. Değişken kayıtlar yalnızca köşe programlarında yazılabilir ve parça programlarında okunabilir.
| |
Error — Nitelik Kaydına Yazılamıyor: nitelik kaydına yazılırsa. Nitelik kayıtları salt okunurdur.
| |
Error — Sabit Kayda Yazılamıyor: sabit bir kayda gölgelendirici program içinde yazılırsa.
| |
Error — Hedef Yazma Maskesi Sıfır: hedef yazma maskesi sıfırsa. Çıktı kaydının tüm bileşenleri ayarlanmalıdır.
| |
Error — AGAL Ayrılmış Bit'leri Sıfır Olmalıdır: bir belirteçteki herhangi bir ayrılmış bit sıfır değilse. Bu, bayt kodu oluşturulurken bir hata oluştuğunu (veya yanlış biçimlendirilmiş bayt kodunu) gösterir.
| |
Error — Bilinmeyen Kayıt Türü: geçersiz bir kayıt türü dizini kullanılırsa.
| |
Error — Örnekleyici Kaydı Sınırların Dışında: geçersiz bir örnekleyici kaydı dizini kullanılırsa.
| |
Error — Değişken Kayıt Sınırların Dışında: geçersiz bir değişken kayıt dizini kullanılırsa.
| |
Error — Nitelik Kaydı Sınırların Dışında: geçersiz bir nitelik kaydı dizini kullanılırsa.
| |
Error — Sabit Kayıt Sınırların Dışında: geçersiz bir sabit kayıt dizini kullanılırsa.
| |
Error — Çıktı Kaydı Sınırların Dışında: geçersiz bir çıktı kaydı dizini kullanılırsa.
| |
Error — Geçici Kayıt Sınırların Dışında: geçersiz bir geçici kayıt dizini kullanılırsa.
| |
Error — Küp Eşleme Örnekleyicisi Kelepçe Kullanmalıdır: küp eşleme örnekleyicisi sarma modunu kelepçe olarak ayarlamazsa.
| |
Error — Bilinmeyen Örnekleyici Boyutu: bir örnek bilinmeyen örnekleyici boyutu kullanırsa. (Yalnızca 2B ve küp dokular desteklenir.)
| |
Error — Bilinmeyen Filtre Modu: bir örnekleyici bilinmeyen filtre modu kullanırsa. (Yalnızca en yakın komşu ve doğrusal filtreleme desteklenir.)
| |
Error — Bilinmeyen Mipmap Modu: bir örnekleyici bilinmeyen mipmap modu kullanırsa. (Yalnızca hiçbiri, en yakın komşu ve doğrusal mipmap modları desteklenir.)
| |
Error — Bilinmeyen Sarma Modu: bir örnekleyici bilinmeyen sarma modu kullanırsa. (Yalnızca kelepçe ve tekrar sarma modları desteklenir.)
| |
Error — Bilinmeyen Özel Bayrak: bir örnekleyici bilinmeyen özel bayrak kullanırsa.
| |
Error — Çıktı Rengi Maskelenebilir Değil: Renk çıktı kaydını bir parça programında maskeleyemezsiniz. Renk kaydının tüm bileşenleri ayarlanmalıdır.
| |
Error — İkinci İşlenen Örnekleyici Kaydı Olmalıdır: AGAL metni işlem kodu, ikinci kaynak işlenen olarak bir örnekleyiciye sahip olmalıdır.
| |
Error — Dolaylı İşleme İzin Verilmez: dolaylı adresleme izin verilmeyen yerde kullanıldı.
| |
Error — Yeniden Düzenleme Ölçekli Olmalıdır: yeniden düzenleme hatası.
| |
Error — 2. Kaynak Yeniden Düzenlenemiyor: yeniden düzenleme hatası.
| |
Error — Örnekleyicinin İkinci Kullanımında Aynı Parametreler Olmalıdır: aynı dokuya erişen tüm örnekleyiciler aynı boyut, sarma, filtre, özel ve mipmap ayarlarını kullanmalıdır.
| |
Error — 3768: Stage3D API, arka planda çalışma sırasında kullanılmayabilir.
|
Daha fazla bilgi
İlgili API Öğeleri
Tue Jun 12 2018, 01:09 PM Z