Yanılıyorsam lütfen beni düzeltin. Köşe ve piksel gölgelendiricileri kullanıldığında, genellikle köşe gölgelendiricinin çıkış gl_pozisyonunu hesaplamak için kod sağlarız. Ardından, piksel gölgelendiricisindeki gl_FragCoord girişiyle ouselve'ları buluruz. Gl_position'dan gl_FragCoord'u hesaplamak için OpenGL tarafından gerçekleştirilen işlemlerin adı nedir? Bunların "projeksiyon" ve "klip koordinatları dönüşümü" olduğu doğru mu? Sonra, bu işlemler sırasında dönüşümler tam olarak ne yapıyor? Diğer bir deyişle, openGL işlevini değiştirmek için kullanabileceğim gl_FragCoord ve gl_position arasındaki matematiksel ilişki nedir? glsl'de gl_fragCoord'u gl_pozisyondan hesaplamak için kullanılan formül nedir?
herhangi katkılarından dolayı çok teşekkür ederiz.cevap
gl_Position sonrası projeksiyon homojen koordinatlarla bulunmaktadır.
gl_FragCoord bir fragmanı arasında (2d) pozisyonu ise gl_Position bir tepe arasında (4d) olduğundan Bu kayda değer. meydana
işlemleri arasında, (örneğin, iç görünüm tüm olan birden çok üçgen üçgen kesim (3 köşe bir üçgen oluşturmak için, örneğin)
- ilkel düzeneği vardır başlangıçta
- görünüm penceresi uygulaması)
- pikselleştirmeyi uymuyorsa (bu üçgenler almak ve onlardan kapalı parçaları)
Yani, bu oluşturulan parçaları gibi yararlı doğrudan örtüşmez kendi başına değil köşe konumu. 2d tepe koordinatı için, formül Bu gl_FragCoord değildir, yine
2d_coord_vertex = viewport.xy + viewport.wh * (1 + gl_Position.xy/gl_Position.w)/2
olup. Daha ayrıntılı bilgi istiyorsanız GL spesifikasyonundaki rasterleştirme ayrıntılarını kontrol edin. Ne demek tam olarak ne olduğundan emin değilim
"openGL işlevini yerine" ancak rasterleştirerek olmayan önemsiz olduğunu ve yolu kapsamı dışındadır SO cevap.
Cevabınız için teşekkür ederiz. Amacım gölge haritası aydınlatma gölgelendiricisini uygulamak. Sahneyi ışık konumundan (ışığın "yansıtma matrisini" kullanarak) gerçekleştirerek bir derinlik haritası (gölge haritası) oluşturdum, ancak son sahnenin köşelerini oluştururken haritanın gölge verilerini almak için hangi koordinatları kullanacağımı bilmiyorum . Ben gölge harita oluştururken gl_position oldu değeri elde etmek ışığın "izdüşüm matrisi" kullanın, sonra doğru pozisyonda gölge veri getirmek için, gölge harita oluştururken gl_fragCoord oldu değerini hesaplamak düşündüm. Çalışabilir mi? – wil
@wil: Bunu yapmanın tipik yolu, bir dünyayı geçmek veya gl_Position (farklı bir çıktıda) ile birlikte uzay gölgelendiricisine bir uzay konumunu görüntülemektir. Bu şekilde, fragman gölgelendiricisinde, doğru enterpolasyonlu konum (ne geçtiğinize bağlı olarak, görünüm veya dünya uzayı), bir matris tarafından ışık alanına geri getirmek için dönüştürülebilir. Kısa cevap, gl_FragCoord'a güvenmeyin, ihtiyacınız olanı iletin. – Bahbar
Tam olarak neyin peşinde olduğunuzdan emin değilim, ancak bir gölge haritası hesaplamak gibi gelmiyor. Ben buna atıfta bulunduğum şey buydu ve kendi işine çok farklı geliyor. Yeni bir soru açmanızı öneririz. Çözmeyi denediğiniz _what_ hakkında biraz bilgi edinin. – Bahbar
- 1. Adapost içinde kullanılan karar fonksiyonu için tanımlama (formül) nedir?
- 2. SourceMonitor'da karmaşıklığı hesaplamak için kullanılan parametreler nelerdir?
- 3. "*" (joker) sürüm numaraları için .NET'teki formül nedir?
- 4. formül
- 5. Mesafeleri hesaplamak için GPS koordinatları derece
- 6. Python'da kullanılan "__docformat__" nedir?
- 7. Django'da kullanılan Contenttpes nedir?
- 8. @ JavaScript'te kullanılan nedir?
- 9. Gerçekten kullanılan 'kurucu' özelliği nedir?
- 10. XSLT'de kullanılan @ (at) sembolü nedir?
- 11. Ters renk hesaplamak için algoritma
- 12. "En az kullanılan alt kuruluş" nedir ve nasıl hesaplanır?
- 13. Anahtar kelimeler için kullanılan alignas ve alignof nedir?
- 14. Python 3.4 için kullanılan __signature__ ve __text_signature__ nedir?
- 15. Django admin'de kullanıcı izinlerini atamak için kullanılan widget nedir?
- 16. Slipt Formül Dize
- 17. Kullanılan orijinal paket AndroidManifest özelliği nedir?
- 18. vektörlenmiş Haversine formül
- 19. MongoDB tarafından veritabanı kullanıcı şifrelerini toplamak için kullanılan karma işlev nedir?
- 20. Uzun formül dizesi alma
- 21. Eğer uygun bir formül
- 22. R parlak görüntü formül
- 23. iç içe excel formül
- 24. Dart'da kullanılan "const" anahtar kelimesi nedir?
- 25. Lucene'nin StopFilter'ında kullanılan varsayılan stopwords listesi nedir?
- 26. Bir csproj dosyasında kullanılan AppDesignerFolder nedir?
- 27. Visio'da kullanılan "sistem dizisi" alanı nedir?
- 28. Reddit'te kullanılan Cassandra veritabanı şeması nedir?
- 29. Yeni Python belgelerinde kullanılan arama motoru nedir?
- 30. İfadede kullanılan [] ifadede kullanılan
Ben aynı sorunu vardı ve önce bir süre sorgulamaya ve söz konusu o "OpenGL: GLSL pencere boşluk Koord gelen Compute göz uzay coord?" Kendim cevap var olan, sağa bir bağlantı bulabilirsiniz. – karx11erx
Üzgünüm karx11erx, istediğim bu değil. Aslında, istediğimin tam tersi olduğunu düşünüyorum. "Proproject" yapmak istemiyorum, 3d koordinatlarımı 2d ekran koordinatlarına yansıtmak istiyorum. – wil
Bunu nasıl yapacağınızı da görebilirsiniz, çünkü gölgelendirici ilk önce (ışık görünümü alanından) ve sonra projeyi (izleyici ekran boşluğuna) yansıtır. – karx11erx