Soru Three.JS tel kafes malzemesi - tüm poligonlar ve sadece kenarlar


Bir projede ThreeJS kullanıyorum ve daha eski sürümlerin daha yeni sürümlerden farklı şekilde wireframes oluşturduğunu fark ettim ve nasıl geri döneceğimi (tercih edeceğim) anlayamıyorum.

Serbest bırakma 54'ü kullanan bu keman, sadece bir tel kafes malzemesi ile çekilen nesnenin dış kenarlarını oluşturur: http://jsfiddle.net/ksRyQ/ ya da platformun spesifik olması durumunda resimde görüldüğü gibi (mac kromumdayım):

enter image description here

Diğer yandan, aynı kodu daha yeni r61 sürümünü kullanarak yerel olarak çalıştırdığımda, her bir poligonun kenarını şöyle görüyorum:

enter image description here

her iki durumda da kod basittir:

material = new THREE.MeshBasicMaterial({
    color: 0xff0000,
    wireframe: true
});

Küpü çizgilerden ya da başka bir şeyden yapabileceğime eminim, ama aslında sorunu daha iyi anlayacağım.

Herhangi bir ipucu? Bu ya da ayarlanabilen bir ayar var mı? İkincil olarak, şu anda webGL oluşturucuyu kullanmayı planlasa da, bu kodun tuval oluşturucuyu kullandığını göreceksiniz, ancak aynı fenomen her ikisi için de geçerli (diğer farklılıklar olsa da).


32
2017-11-22 20:14


Menşei




Cevaplar:


Verilen bir tel çerçevesini oluşturmak istiyorsanız geometryŞimdi bu deseni kullanabilirsiniz:

var geo = new THREE.EdgesGeometry( geometry ); // or WireframeGeometry( geometry )

var mat = new THREE.LineBasicMaterial( { color: 0xffffff, linewidth: 2 } );

var wireframe = new THREE.LineSegments( geo, mat );

scene.add( wireframe );

WireframeGeometry tüm kenarları oluşturur. EdgesGeometry sadece sert kenarları oluşturacak.

Ayrıca bkz. bu ilgili cevap Hem bir modeli hem de tel kafesini nasıl oluşturacağınız hakkında.

EDIT: three.js.r.82 olarak güncellendi


54
2017-11-22 21:13



Sadece detaylandırmak için köşegenleri görüyorsunuz, çünkü dört yüzler için destek Three.js'den düştü ve böylece CubeGeometry ve diğerleri artık üçgenler kullanılarak uygulandı. - yaku
Anladım, Yaku, bu kesinlikle temel soruma cevap veriyor - eğer başka bir şey istiyorsam, sadece farklı bir şekilde çizmeliyim. - tekunokurato
71 yaşındayım ve EdgesGeometry veya WireframeGeometry yok, bunun yerine ne kullanabilirim? - shinzou
Bu cevaba eski düzenlemeleri gördüm, alıyorum Only THREE.Mesh can be rendered by the Firefly renderer. Use THREE.Mesh to draw lines.Yani, köşegen olmayan şekle ait çizgiler ekleyebileceğim herhangi bir yol var mı? - shinzou
@kuhaku rev ​​71 2+ yaşında. Mevcut sürüme yükseltin. Sorularınız varsa yeni bir gönderi yapın. - WestLangley