eXcluroN

Yeni üye
13 Ara 2015
15
0
0
(34) İstanbul Avrupa
Merhabalar. Arabama ayna yapmak için Scene Capture 2d kullanıyorum fakat dönüşlerde kamera sabit olmuyor. Hafif rotation lag var gibi. Socket'e ekledim olmadı. Spring Arm ekledim ve rotation lag gibi çoğu seçeneği kapattım açtım olmadı. Başka bir çözüm yolu olan veya çözümünü bilen varsa yardımcı olursa sevinirim. Teşekkürler.
 
eXcluroN' Alıntı:
Merhabalar. Arabama ayna yapmak için Scene Capture 2d kullanıyorum fakat dönüşlerde kamera sabit olmuyor. Hafif rotation lag var gibi. Socket'e ekledim olmadı. Spring Arm ekledim ve rotation lag gibi çoğu seçeneği kapattım açtım olmadı. Başka bir çözüm yolu olan veya çözümünü bilen varsa yardımcı olursa sevinirim. Teşekkürler.

Scene Capture için kullandığınız kamera pozisyonu ve Forward vektörü ana kameranın ayna yüzeyine göre simetrik pozisyonu ve Forward vektörü olmak durumundadır. Yani sabit olmamalıdır. Ayrıca Render Target Texture'da UV üzerinde U'yu ters çevirmeniz gerekecektir.

16462-reflectiondemo.png
 
cahitburak' Alıntı:
Scene Capture için kullandığınız kamera pozisyonu ve Forward vektörü ana kameranın ayna yüzeyine göre simetrik pozisyonu ve Forward vektörü olmak durumundadır. Yani sabit olmamalıdır. Ayrıca Render Target Texture'da UV üzerinde U'yu ters çevirmeniz gerekecektir.

16462-reflectiondemo.png

Hocam sabitten kastım mesela aracın içindeyken sağa dönüş yaptığımda araç dönüyor scene capture2d sonra dünüyor gibi oluyor. Örnek olarak bu fotoğraf var benim sorunumla aynı. Adam spring arm ile düzeltmiş galiba ama ben ne yaptıysam o da olmadı. Araçla aynı zamanda dönmüyor kısaca.
56994-error.gif
 
eXcluroN' Alıntı:
Hocam sabitten kastım mesela aracın içindeyken sağa dönüş yaptığımda araç dönüyor scene capture2d sonra dünüyor gibi oluyor. Örnek olarak bu fotoğraf var benim sorunumla aynı. Adam spring arm ile düzeltmiş galiba ama ben ne yaptıysam o da olmadı. Araçla aynı zamanda dönmüyor kısaca.
56994-error.gif

Benim de söylediğim ne olursa olsun, ana kameraya bağlı çalışması gerektiği yönünde. Ayna kamerası, araca göre de hareketli olmalı (eğer ana kamera araca göre hareketli ise).
 
cahitburak' Alıntı:
Benim de söylediğim ne olursa olsun, ana kameraya bağlı çalışması gerektiği yönünde. Ayna kamerası, araca göre de hareketli olmalı (eğer ana kamera araca göre hareketli ise).
Eğer yanlış anlamadıysam ayrıdan spring arm yerine cameraya veya cameranın spring arm'ına montelemem gerekiyor galiba?
 
cahitburak' Alıntı:
eXcluroN' Alıntı:
Eğer yanlış anlamadıysam ayrıdan spring arm yerine cameraya veya cameranın spring arm'ına montelemem gerekiyor galiba?

Hayır.

Ayna kamerası için Location ve Rotation değerlerini Tick'de sürekli olarak belirtmiş olduğum biçimde hesaplattırmalısın.

Tamamdır gece yapıp yarın haber veririm başarabildim mi diye :D
 
eXcluroN' Alıntı:
cahitburak' Alıntı:
Hayır.

Ayna kamerası için Location ve Rotation değerlerini Tick'de sürekli olarak belirtmiş olduğum biçimde hesaplattırmalısın.

Tamamdır gece yapıp yarın haber veririm başarabildim mi diye :D

Eğer Content Examples'da bulunan bu örneğe göre yapmışsan belirteyim bu örnek yanlış.
https://answers.unrealengine.com/qu...ng-a-mirror-using-scene-capture-2d-actor.html

Bir de pozisyon simetrisini almak, kamerayı aynanın arkasına geçirdiğinden kontrol etmesi güç durumlar ortaya çıkarabilir(aynayı bu kamera için gizlemek gibi).
Son olarak kontrol ettim de UV değerleri meshe göre değişmekte ve ayna düzleminin World Rotation Pitch değeri 0'a getirildiğinde dik duracak şekilde ayarlanmalı, diğer türlü Pitch değerinde ekstra oynamalar yapmak gerektirebilir.

Öncelikle ana kameranın ileri yön vektörü d, yüzey normali n ise yansıma kamerasının yönü r olmak üzere:
r = d - 2(d.n) * n
. nokta çarpımı
* vektör skaler çarpımını ifade eder
Ekli dosyayı görüntüle 3

Yön vektörleri ilgili bileşenlerden alınır sonuç yansıma kamerasının yeni açısı olarak sürekli güncellenir.
Ekli dosyayı görüntüle 2

Burada dikkat edilmesi gereken konu, yansıma yüzeyinin normali ile ilgilidir. Yanzıma yüzeyinin World transformasyonunda yüzey normalini temsil eden yön doğru bir biçimde tayin edilmelidir. Örnekte vermiş olduğum yüzeyin normali (pivot açıkken görülebilir) +Z doğrultusunda yani UE4 için bu Up Vector anlamına geliyor. Bu yüzden Get Up Vector kullanıldı. Bu, aynanın kendisi de hareketli olduğu için gereklidir. Sabit bir ayna kullanılıyorsa buraya doğrudan sabit normal vektörü girilebilirdi.
Ekli dosyayı görüntüle 4
 

Ekli dosyalar

  • GetReflectedRotation.png
    GetReflectedRotation.png
    65.3 KB · Görüntüleme: 5
  • MirrorNormal.png
    MirrorNormal.png
    477 KB · Görüntüleme: 1
  • ApplyReflectedRotation.png
    ApplyReflectedRotation.png
    130.8 KB · Görüntüleme: 5
cahitburak' Alıntı:
Eğer Content Examples'da bulunan bu örneğe göre yapmışsan belirteyim bu örnek yanlış.
https://answers.unrealengine.com/qu...ng-a-mirror-using-scene-capture-2d-actor.html

Bir de pozisyon simetrisini almak, kamerayı aynanın arkasına geçirdiğinden kontrol etmesi güç durumlar ortaya çıkarabilir(aynayı bu kamera için gizlemek gibi).
Son olarak kontrol ettim de UV değerleri meshe göre değişmekte ve ayna düzleminin World Rotation Pitch değeri 0'a getirildiğinde dik duracak şekilde ayarlanmalı, diğer türlü Pitch değerinde ekstra oynamalar yapmak gerektirebilir.

Öncelikle ana kameranın ileri yön vektörü d, yüzey normali n ise yansıma kamerasının yönü r olmak üzere:
r = d - 2(d.n) * n
. nokta çarpımı
* vektör skaler çarpımını ifade eder


Yön vektörleri ilgili bileşenlerden alınır sonuç yansıma kamerasının yeni açısı olarak sürekli güncellenir.


Burada dikkat edilmesi gereken konu, yansıma yüzeyinin normali ile ilgilidir. Yanzıma yüzeyinin World transformasyonunda yüzey normalini temsil eden yön doğru bir biçimde tayin edilmelidir. Örnekte vermiş olduğum yüzeyin normali (pivot açıkken görülebilir) +Z doğrultusunda yani UE4 için bu Up Vector anlamına geliyor. Bu yüzden Get Up Vector kullanıldı. Bu, aynanın kendisi de hareketli olduğu için gereklidir. Sabit bir ayna kullanılıyorsa buraya doğrudan sabit normal vektörü girilebilirdi.


Hocam şimdi yaptım da olmadı ya. Dediğim gibi spring arm'a rotation lag eklersin de biraz geç döner sonra kendi hizasına döner ya onun gibi oluyor hala. Araç sağa dönerken mesela araç önce dönüyor yansıma sonradan takip ediyor onu. Dediğin şekilde de yaptım olmadı.
 
Geçen sene AnswerHub'da birkaç kullanıcının da karşılaştığını gördüğüm bir sorun bu. Nedenini de kestiremiyor kimse ama physics substepping ve scene capture update zamanlaması ile alakalı birşey olabilir.
 
Jacky' Alıntı:
Geçen sene AnswerHub'da birkaç kullanıcının da karşılaştığını gördüğüm bir sorun bu. Nedenini de kestiremiyor kimse ama physics substepping ve scene capture update zamanlaması ile alakalı birşey olabilir.

Belki yaptığım örnekte çok iş yükü olmadığından ama gayet iyi çalışıyor. Arkadaşın sorunu böyle bir gecikmeden kaynaklanıyor olabilir, benim de aklıma geldi ancak Scene Component ile çözdüm demiş de ilgisini ben kavrayamadım galiba. SceneComponent, transform ve attach destekleyen en alt seviye Actor Component sınıfıdır. Konuyla ilgisini çözemedim.
 
Hocam şimdi şöyle Scene Component'ı statik yapınca sorunum ortadan kalktı. Movement yapınca yine dediğiniz gibi geçikmeli geliyor yani rotation lag eklemiş gibi. Scene Component'ı statik yapıp rotation ve locationı eklediğim socketten alıyorum herşey düzgün çalışıyor.
 
eXcluroN' Alıntı:
Hocam şimdi şöyle Scene Component'ı statik yapınca sorunum ortadan kalktı. Movement yapınca yine dediğiniz gibi geçikmeli geliyor yani rotation lag eklemiş gibi. Scene Component'ı statik yapıp rotation ve locationı eklediğim socketten alıyorum herşey düzgün çalışıyor.

SceneComponent başka birşey, SceneCaptureComponent demek istemişsin, anladım şimdi fakat statik yapınca nasıl hareket ediyor? Bu bir aracın aynası değil mi?
 
Evet sockete bağladım onunla birlikte hareket ediyor ve dönüyor. Gerçek bi araç aynası gibi tabi camerayı çevirince şuanlık gerçek aynadaki gibi açısı değişmiyor onu da camera rotationdan çekicem.