Autor Wątek: Wczytywanie modeli 3D z blendera do mojej gry - pytania  (Przeczytany 6654 razy)

Offline voytech

  • Użytkownik

# Grudzień 13, 2011, 20:15:52
Mam coś takiego tam.
Ale jak w ogóle się te tekstury wczytuje? Ba ja nawet ich w blenderze nie wiedze. A skoro nie ma tekstur to nie ma UV.

nieprawda. Tekstury nie są warunkiem koniecznym do istnienia koordynat uv. Możesz je przypisać do siatki w trybie edycji w oknie "UV/Image Editor". Radzę poszukać w sieci lub na youtube jakiś tutoriali, będzie znacznie szybciej.

Offline Mr. Spam

  • Miłośnik przetworów mięsnych

Offline DarkPeter

  • Użytkownik

# Grudzień 13, 2011, 20:18:22
aha. No w każdym razie ja tych UV nie mam.
A one są w pliku OBJ czy MTL?

Offline Oti

  • Użytkownik

# Grudzień 13, 2011, 20:23:48
OBJ. MTL olej-to tylko dane materiałów takie jak diffuse, specular czy ścieżka tekstury. W praktyce na początku nie będziesz potrzebował takich danych, a później albo wymyślisz własny format do takich pierdółek albo to zahardkodujesz.
« Ostatnia zmiana: Grudzień 13, 2011, 20:25:20 wysłana przez Oti »

Offline voytech

  • Użytkownik

# Grudzień 13, 2011, 20:36:13
aha. No w każdym razie ja tych UV nie mam.
A one są w pliku OBJ czy MTL?

Ło matko. Wciśnij ten zaznaczony plusik w Blenderze to będziesz miał jakieś tam koordynaty w meshu.


jak już je będziesz miał, to po wyeksportowaniu do *.obj powinny ci się w tym pliku pojawić wiersze z "vt". Żeby miało to jakiś sens trzeba się bardziej napracować. Obejrzyj sobie ten tutorial:
http://cgcookie.com/blender/2011/01/21/intro_uvmapping/
« Ostatnia zmiana: Grudzień 13, 2011, 20:48:20 wysłana przez voytech »

Offline DarkPeter

  • Użytkownik

# Grudzień 18, 2011, 20:55:27
Mam jeszcze (!) jedno pytanie (oby ostatnie):
otóż kolega podrzucił mi model, który składa się z kilku obiektów. Każdy z nich ma inną teksturę. Czy w plikach OBJ jest gdzieś zawarte jakie i gdzie mam dokładnie te tekstury nałożyć?
I czy w plikach OBJ są już wyliczone normale?

Offline voytech

  • Użytkownik

# Grudzień 18, 2011, 21:47:28
- jak chcesz mieć normalne w pliku obj to przy eksporcie musisz zaznaczyć, że je chcesz (patrz na obrazek od Kosa)

- pliki obj nie zawierają niczego na temat tekstur, jedynie ścian korzystających z tego samego materiału są pogrupowane (linia zaczynająca się od "usemtl"). Tutaj masz przykład siatki składającej się z dwóch quadów, każdy inna tekstura
# Blender v2.61 (sub 0) OBJ File: ''
# www.blender.org
mtllib a.mtl
o Plane
v -1.000000 0.000000 1.000000
v -1.000000 0.000000 -1.000000
v -0.000000 0.000000 1.000000
v 0.000000 0.000000 -1.000000
v -1.000000 0.000000 -0.000000
v 0.000000 0.000000 -0.000000
vt 0.000000 0.000000
vt 1.000000 0.000000
vt 1.000000 1.000000
vt 0.000000 1.000000
vn 0.000000 1.000000 -0.000000
usemtl Material.001_normalmapa.tga
s off
f 1/1/1 3/2/1 6/3/1 5/4/1
usemtl Material.002_normalmapa_diff.tga
f 4/1/1 2/2/1 5/3/1 6/4/1

- po linii zaczynającej się od "mtllib" jest nazwa pliku *.mtl, która zawiera definicje materiałów, z których korzysta "usemtl"

- w pliku *.mtl wyeksportowany z Blendera (2.61) zawiera linię "map_Kd" zawierającą ścieżkę do pliku z teksturą. Nie ma tego w specyfikacji, więc nie należy oczekiwać, że inne programy będą eksportować podobnie. To takie małe rozszerzenie eksportera w Blenderze. A teraz przykładowy plik materiałów:
# Blender MTL File: ''
# Material Count: 2
newmtl Material.001_normalmapa.tga
Ns 96.078431
Ka 0.000000 0.000000 0.000000
Kd 0.640000 0.640000 0.640000
Ks 0.500000 0.500000 0.500000
Ni 1.000000
d 1.000000
illum 2
map_Kd E:\\textures\\normalmapa.tga


newmtl Material.002_normalmapa_diff.tga
Ns 96.078431
Ka 0.000000 0.000000 0.000000
Kd 0.640000 0.640000 0.640000
Ks 0.500000 0.500000 0.500000
Ni 1.000000
d 1.000000
illum 2
map_Kd E:\\textures\\normalmapa_diff.tga


Ps. ściągnij najnowszego blendera, bo poprzednia wersja miała jakieś problemy z eksportem OBJ oraz wyświetlaniem większej ilości tekstur przydzielonych w UVEditorze.

Offline voytech

  • Użytkownik

# Grudzień 18, 2011, 22:13:25
Jeszcze jedno,
nie wiem czy jest jakieś ograniczenie na ilość tekstur przydzielonych do jednej siatki, albo ilość materiałów, wypadałoby sprawdzić. W UVEditorze przydzieliłem ich chyba z 18, bo tyle miałem quadów i już dalej mi się nie chciało sprawdzać. Chyba teoretycznie do siatki można przydzielić inny materiał do każdego fejsa, to też warto by sprawdzić, bo tekstury do siatki można przydzielać też w materiałach tak żeby były widoczne w Blenderze w trybie GLSL.

Jak masz kilka różnych modeli z różnymi teksturami/materiałami to możesz zaznaczyć je wszystkie i wyeksportować w Blenderze do jednego pliku obj. Albo wcześniej przed eksportem scalić je w jeden większy mesh przy pomocy CTRL-J. Sprawdź jakie są wtedy różnice w OBJ i wybierz który ci najlepiej pasuje.