Üç.js'de, nesnenin her nesnenin arkasında olsa bile, her zaman sahnenin üzerinde oluşturulmuş bir ağa sahip olması mümkün mü? Bir örgü ile bir kement seçimini yapıyorum ve sahnenin geri kalanının en üstünde seçim kutusunu seçmem gerekiyor.Three.js - Geometri bir başka üstte
cevap
Evet.
Öncelikle bu yapın:
renderer.autoClear = false;
Sonra yukarıda yer almasını istediğiniz gibi nesneleri içeren bir ikinci sahneyi oluşturun. Ardından, içinde döngü işlemek:
renderer.clear(); // clear buffers
renderer.render(scene, camera); // render scene 1
renderer.clearDepth(); // clear depth buffer
renderer.render(scene2, camera); // render scene 2
DÜZENLEME: örgü tek bir malzeme vardır
mesh.renderOrder = 999;
mesh.onBeforeRender = function(renderer) { renderer.clearDepth(); };
, bu olacak: Başka bir çözüm sadece bir sahne var, ama bu desen kullanmaktır "üstünde" render. Eğer siz de false
o nesnenin malzemesi için depthTest
ayarlayarak yönetebilir cephesinde tek örgü işlemek istiyorsanız
Three.js r.85
:
var onTopMaterial = new THREE.MeshStandardMaterial({
color: 'red',
depthTest: false
});
mesh.material = onTopMaterial;
bir demonstation edin this fiddle
Not: Eğer 01 olduğundan emin olunvarsayılan true
değerine ayarlandı.
Bu, _not_ iyi bir fikir. Birçok tuzak var. Birincisi için mavi küplerde 'transparent: true' ayarını yapın. Ancak en büyük sorun, "depthTest = false" ayarlanarak, "üst ağda" denen şeyin artık kendisiyle birlikte derinlemesine test yapmayacağı ve bu da yapay eserlerin ortaya çıkmasına yol açabileceğidir. – WestLangley
@WestLangley Geri bildiriminiz için teşekkür ederiz. Şeffaf ayarlarla çatışmak benim durumumda kabul edilebilir, ama emin olamadığım eserler hakkında. Bunu nasıl test ederim? Sadece bir nesneyi geçici olarak diğerlerinin önüne, 'mouseover' ve 'mousout' üzerine geri taşımaya ihtiyacım var. Bana böyle bir durumda geçici olarak farklı bir sahneye eklenmesi arzu edilmez. – Wilt
Çok sınırlı kullanım durumunuz olmadıkça, kabul edilen yanıttaki yaklaşımı izlerim. – WestLangley
- 1. Three.js instancing eşdeğeri
- 2. OpenGL: geometri
- 3. Geometri bir eğriyi nasıl izler?
- 4. three.js - kameranın bir nesneyi
- 5. Git: "Üstte" bir işlem gerçekleştirme
- 6. Three.js - Döndürme animasyonu yapın
- 7. OrbitControl - Three.js
- 8. Three.js malzemesi
- 9. Three.js - Bir nesnenin bir parçasını gösterme/gizleme
- 10. C++ 'daki Geometri kütüphanesi
- 11. iOS Özel Geometri SceneKit'te
- 12. Çoklu Görünüm Geometri
- 13. Qt setGeometri: Geometri ayarlanamıyor
- 14. CubeGeometry'nin genişliğini Three.js ile nasıl değiştirebilirim?
- 15. Three.js - hakkında sorular (kullanımı) THREE.BufferGeometry
- 16. Üstte kalan UITableView üstbilgisi
- 17. Üstte UIPopoverController araç çubuğu
- 18. THREE.JS Işığın karşı tarafındaki gölge
- 19. Three.js sesin nasıl silineceğini?
- 20. Listeyi sırala özel bir değer üstte biter
- 21. Tüm geometri, Postgres'te GeomUnion gibi bir SQL Server tablosundaki tüm geometri
- 22. Geometri/Yol, Minilanguage Dize Dönüştür?
- 23. Three.js JSONLoader 'onLoad bir işlev değil'
- 24. Postgresql'deki ViewData Penceresinde eksik geometri
- 25. Temel geometri rutinlerini nerede bulabilirim?
- 26. three.js TypeError: undefined özelliği 'center' özelliği okunamıyor
- 27. nasıl, ben Three.js kullanarak tuval birçok unsurlar var Three.js
- 28. Başka bir SVG öğesinde (üstte) bulunan SVG (alt öğe) öğelerine D3 kullanarak nasıl başvurulur?
- 29. Three.js - avatar animasyonu
- 30. Three.js: PointLight değişiklik mesafesi
Bu tek yol mu? Mesh.renderDepth, material.depthTest ve material.depthWrite ile aynı etkiyi elde etmeye çalışıyordum ama boşuna. – Andrew
@Andrew Bir sorunuz varsa lütfen bir yazı gönderin. – WestLangley
@Andrew şu anda aynı şeyi yapmaya çalışıyor, http://stackoverflow.com/questions/16247280/force-a-sprite-object-to-always-be-in-front-of-skydome-object-in adresine bakın -three-js – sixFingers