.OBJ dosyalarına köşe rengi bilgilerini nasıl ekleyebilirim?


25

Verdiğim .obj dosyaları, köşe renkleri için veri eksik. .Obj dosyasına renk bilgileri eklemenin bir yolu var mı? Değilse, alternatifler nelerdir?

Yanıtlar:


9

Blender, metin tabanlı, ayrıştırması çok kolay ve köşe renkleri içeren PLY dosyalarını (.ply) dışa aktarabilir. Zor yol, OBJ ihracatçı kodunu, köşelerin renklerini içerecek şekilde değiştirmek (böylece obj uyumluluğunu kırmaktır).


8
Yanlış bir yol OBJ ihracatçısı değiştirmektir. İş için doğru aracı kullanın; Köşe renkleri istiyorsanız, Wavefront OBJ açıkçası kullanmak istediğiniz (veya kötüye kullanılan) bir araç değildir.
Martin Sojka

6
Bu neden yanlış bir şekilde? Sadece OBJ ihracatçısını kendi şirketi haline getirirse, bunun nasıl "yanlış" olduğunu göremem. Yanlış yol herhangi bir iş yapmamaktır, çünkü her zaman biri için yanlış yoldur.
Ravachol

.Obj biçimi, malzeme bilgilerini depolamak için .mtl dosyalarını kullanır, ancak bildiğim kadarıyla, yüz başına yalnızca bir materyali destekler. Ayrıca, .obj, wikipedia girişinin gerçekten yararlı olduğu pek fazla başlıktan biri değil: en.wikipedia.org/wiki/Wavefront_.obj_file
Exilyth

3
Yanlış çünkü OBJ sabit bir şartname. İhracatçıyı ekstra şeyler yapacak şekilde değiştirmeye başladığınızda , artık bir OBJ ihracatçısı değildir, başka bir şeydir. Oradan hemen hemen çok kafalı herhangi bir canavara dönüşebilirdi. Yine de, iyi cevap, ben asla PLY duymadım.
Mühendis,

@NickWiggill PLY mutlaka iyi bir seçim değildir - belki de bunu iyi bir nedenden duymamışsındır. Bu var çok daha karmaşık OBJ birden ve tek makul statik modeli için kullanmak gerekir daha fazla esneklik sağlar. Biraz daha fazla esnekliğin gerekiyorsa, belki köklü gibi ayrıştırıcıları, bir daha popüler dosya biçimini kullanmalısınız COLLADA'ya
bobobobo

18

Wavefront'un * .obj'sinin Vertex Coloring'i kolaylaştıran bir lezzeti var. Bunları "MeshLab" (ücretsiz) ve "MeshMixer" (ayrıca Autodesk'ten ücretsiz) olarak dışa aktaran iki uygulamayı biliyorum. her köşe tanımından hemen sonra aşağıda gösterildiği gibi ..

(Bir parça * .obj)

####
#
# OBJ File Generated by Meshlab
#
####
# Object VERTEXPAINT_004_OBJ.obj
#
# Vertices: 284
# Faces: 281
#
####
mtllib ./VERTEXPAINT_004_OBJ.obj.mtl

vn 0.029683 0.730087 -0.682709
v 1220.094482 -572.500000 177.713943 0.984314 0.764706 1.000000  

# "3 vals for Vert and 3 vals for Col"

vn 0.000000 0.858139 -0.513418
v 1291.571533 -609.439636 -28.628490 0.921569 0.219608 1.000000
vn 0.303129 0.896367 -0.323480

"Vertex Tabanlı Ortam Tıkanması" oluşturmak için meshlab'ı kullanmayı deneyin, ardından "MeshMixer" ile açın.

Bu konunuzu açıklığa kavuşturmalıdır. Sanırım Vertex renklendirme, gölgelendiricilerin ortaya çıkışıyla geri dönüyor .. Görüntü haritaları keşfedildiğinde Vertex renklendirmenin nasıl ihmal edilmiş göründüğü komik. Bu yararlı olup olmadığını bana bildirin!


Ah anlıyorum. Bunlar 3 şamandıralar başına tepe renk tacked sonrav tepe pozisyon değeri. Mevcut OBJ ayrıştırıcıları ile uyumluluğu bozmamanın akıllıca yolu (umarım).
bobobobo

+1 Bu renkli köşelerle tam olarak yakın zamanda aldığım bir obj dosyasında karşılaştım. Göre Sayı · OBJ Vertex Boyama Ayrıştırma Problem # 2083 · mrdoob / Three.js , renkler olarak normaldir ve 0 1. ila herhangi birinden sizi bunun için herhangi bir gerçek belgelerin farkında mısınız, kırmızı, yeşil, mavi sıradadır millet onu destekliyor mu? Uygulayan herhangi bir açık kaynak koduna ne dersiniz? Gerçekten yaygın olarak kabul edilen obj için yazılı bir standart var mı?
nealmcb

Aha - sorularımdan birini cevaplamak için, MeshLab sadece ücretsiz değil, aynı zamanda açık kaynak (GPL) ve çapraz platform :)
nealmcb

7

Wavefront OBJ , aynı renkteki kafes gruplarının renklerini destekleyen malzemeleri destekler .

Malzeme ifadeleri şöyle görünür:

newmtl redMtl
Kd 1.00 0.00 0.00
Ks 0.50 0.50 0.50
Ns 18.00

Yani, Kd yaygın bileşendir, Ks speküler.

Bunlar .obj dosyasına eşlik eden bir .mtl dosyasının içinde belirtilecektir. .Obj dosyası içinde gibi ifadeler

usemtl redMtl
f 1/5/1 30/39/2 20/29/3
f 20/29/4 30/39/5 31/41/6
f 35/48/7 26/35/8 2/6/9

Bu, belirtilen belirtilen yüzlerin redMtl malzemesini kullanacağı anlamına gelir. Obj dosyasını ayrıştırırken, bu köşe başına renk anlamına gelir.

Çok sayıda farklı renk varsa, çok sayıda farklı malzemeye sahip olacaksınız, ancak bunu yapabilirsiniz.

Aşağıda, belirli bir yüz grubuna farklı bir materyalin nasıl atanacağına dair bir video verilmiştir . İsterseniz, kafesdeki her yüze farklı bir malzeme atayabilirsiniz.


5
Ne yazık ki bu, yüz başına renklendirmeye izin verir, köşe başına renklendirmeye değil.
kabarık
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.