Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

3ds Max export-ovanje u DirectX aplikaciju

[es] :: 3D programiranje :: 3ds Max export-ovanje u DirectX aplikaciju

[ Pregleda: 3272 | Odgovora: 2 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Ajvan
Ivan Jovanovic
Novi Sad

Član broj: 10783
Poruke: 71
*.ns.ac.yu.



Profil

icon 3ds Max export-ovanje u DirectX aplikaciju14.12.2007. u 11:00 - pre 199 meseci
Kada export-ujem objekat iz 3ds max-a u ASCII fajl, taj fajl sadrzi, izmedju ostalog MESH_VERTEX_LIST za koordinatama tacaka, npr.:
MESH_VERTEX 0 X0 Y0 Z0
MESH_VERTEX 1 X1 Y1 Z1
MESH_VERTEX 2 X2 Y2 Z2
MESH_VERTEX 3 X3 Y3 Z3
MESH_VERTEX 4 X4 Y4 Z4
MESH_VERTEX 5 X5 Y5 Z5
MESH_VERTEX 6 X6 Y6 Z6
MESH_VERTEX 7 X7 Y7 Z7 (u ovom slucaju je 3ds max objekat kocka).

Sada zelim da ovaj objekat iscrtam u c# aplikaciji. Inicijalizujem DX i sve to radi kako treba. Problem je sto je ovakvo definisanje tacaka nezgrapno za iscrtavanje. Postoji li neki exporter za 3ds max koji exportuje objekat tako da se umesto koordinata tacaka dobiju koordinate trouglova, i onda primenom f-je Direct3D.PrimitiveType.TriangleStrip iscrta dati objekat?
Ja u sustini mogu da preuredim tacke unutar fajla tako da dobijem koordinate trouglova, medjutim sta kada je rec o slozenijem obliku?
 
Odgovor na temu

glorius
Damir Nikolic
C++ developer
SR

Član broj: 4366
Poruke: 428
212.200.238.*

ICQ: 208550327


+14 Profil

icon Re: 3ds Max export-ovanje u DirectX aplikaciju14.12.2007. u 15:33 - pre 199 meseci
Evo ti pravo resenje za to..

Ovo je MAX exporter. Exportuje mnooooogooooo toga...
http://www.andytather.co.uk/Panda/directxmax_downloads.aspx

Loadiras ga sa standardnom DirectX funkcijom D3DXLoadMeshFromFileX...

Pogledaj malo primere po netu.
EOF
 
Odgovor na temu

genuine
Dragisa Jankovic
Beograd

Član broj: 101510
Poruke: 33
*.ptt.yu.



Profil

icon Re: 3ds Max export-ovanje u DirectX aplikaciju18.12.2007. u 01:17 - pre 198 meseci
Taj problem se najbolje resava jednostavnim pisanjem custom max skripte... Evo jedne koju sam ja radio za svoje potrebe..

fn AddToList List obj=(
b = false;

for o in List do
if o == obj do b = true;


if b == false do -- (List[(List.count+1)] = obj;);
List[List.count+1]= obj


return 0;
)



fn exportMaterial m fs =(
format "<MaterialBMP name=\"%\">\n" m.name to:fs
format "\t<Ambient r=% g=% b=%>\n" (m.Ambient.r/255.0) (m.Ambient.g/255.0) (m.Ambient.b/255.0) to:fs
format "\t<Diffuse r=% g=% b=%>\n" (m.Diffuse.r/255.0) (m.Diffuse.g/255.0) (m.Diffuse.b/255.0) to:fs
format "\t<Specular r=% g=% b=%>\n" (m.Specular.r/255.0) (m.Specular.g/255.0) (m.Specular.b/255.0) to:fs
format "\t<ShinninessExp value=% >\n" m.Glossiness to:fs
if ( m.DiffuseMap != undefined ) do
format "\t<Texture filename=\"%\">\n" m.DiffuseMap.Bitmap.filename to:fs

format "</MaterialBMP>\n" to:fs
)

fn exportMultiMaterial m fs =(
format "<MultiMaterial name=\"%\" numberofsubmaps=%>\n" m.name m.numsubs to:fs

for mat in m.MaterialList do
format "\t<SubMaterial name=\"%\">\n" mat.name to:fs


format "</MultiMaterial>\n" to:fs
)


fn exportmesh obj fs = (
format "<TriMesh name=\"MODEL-%\">\n" obj.name to:fs


format "\t<PositionCoords size=%>\n" (obj.verts.count) to:fs
for v in obj.verts do
format "\t\t<V3 id=% x=% y=% z=%>\n" (v.index-1) (v.pos.x) (v.pos.z) (v.pos.y) to:fs
format "\t</PositionCoords>\n" to:fs


format "\t<VertexNormalCoords size=%>\n" (obj.verts.count) to:fs
for i = 1 to obj.verts.count do (
v = getNormal obj i
format "\t\t<V3 id=% x=% y=% z=%>\n" (i-1) v.x v.z v.y to:fs
)
format "\t</VertexNormalCoords>\n" to:fs

format "\t<FaceNormalCoords size=%>\n" (getNumFaces obj) to:fs
for i = 1 to (getNumFaces obj) do (
v = getFaceNormal obj i
format "\t\t<V3 id=% x=% y=% z=%>\n" (i-1) v.x v.z v.y to:fs
)
format "\t</FaceNormalCoords>\n" to:fs



format "\t<TextureCoords size=%>\n" (getNumTVerts obj) to:fs
for i = 1 to (getNumTVerts obj) do (
v = getTVert obj i
format "\t\t<V2 id=% x=% y=%>\n" (i-1) v.x v.y to:fs

)
format "\t</TextureCoords>\n" to:fs

format "\t<Faces size=%>\n" (getNumFaces obj) to:fs
for i = 1 to (getNumFaces obj) do (
f1 = getFace obj i
f2 = getTVFace obj i
mid = getFaceMatId obj i
format "\t\t<F id=% A=% B=% C=% TA=% TB=% TC=% MId=%>\n" (i-1) (f1.x-1) (f1.y-1) (f1.z-1) (f2.x-1) (f2.y-1) (f2.z-1) mid to:fs

)
format "\t</Faces>\n" to:fs

format "\t<Pivot>\n" to:fs
format "\t\t<Pos x=% y=% z=%>\n" obj.pivot.x obj.pivot.z obj.pivot.y to:fs
format "\t\t<Rot x=% y=% z=% angle=%>\n" (obj.rotation.axis).x (obj.rotation.axis).z (obj.rotation.axis).y (obj.rotation.angle*6.28/360.0) to:fs
format "\t</Pivot>\n" to:fs




format "</TriMesh>\n" to: fs
)

utility MyGL_Exporter "MyGE Scene Exporter"
(
label l0 "Select Object for Export"
button exportbtn "Export to file"


label l1 "Exporter designed for" align:#left
label l2 "Computer Graphics Project" align:#left
label l3 "Dragisa Jankovic 395/01" align:#left


on exportbtn pressed do (
filename = getSaveFileName caption:"Export Object to File.."\
types:"MyGL ASCII scene(*.asc)|*.asc|"


if filename == undefined do return 0;

if selection.count == 0 do (
MessageBox "You must select objects for export!"
return 0
)

fs = createFile filename

for o in selection do (
if (isKindOf o Editable_Mesh) do (

format "<TModel name=\"%\">\n" o.name to:fs
format "\t<UsingModel name=\"MODEL-%\">\n" o.name to:fs
format "\t<UsingMaterial name=\"%\">\n" o.Material.name to:fs
if o.Children.count > 0 do (
format "\t<Childrens>\n" to:fs
for child in o.Children do
if ( finditem (Selection as array) child != 0 ) do
format "\t\t<Child name=\"%\">\n" child.name to:fs
format "\t</Childrens>\n" to:fs

)
format "</TModel>\n" to:fs



exportmesh o fs
)
)

MaterialList = #();

for o in selection do (

if (isKindOf o Editable_Mesh) do (
if ( isKindOf o.Material MultiMaterial ) then(
AddToList MaterialList o.Material;
for m in o.material.materialList do
AddToList MaterialList m;
)
else
AddToList MaterialList o.Material;

)
)

for mat in MaterialList do (
if ( isKindOf mat MultiMaterial ) then
exportMultiMaterial mat fs
else
exportMaterial mat fs

)



close fs
)
)





Necu vise da radim ,bre !
 
Odgovor na temu

[es] :: 3D programiranje :: 3ds Max export-ovanje u DirectX aplikaciju

[ Pregleda: 3272 | Odgovora: 2 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.