abbrechen
Suchergebnisse werden angezeigt für 
Stattdessen suchen nach 
Meintest du: 
abbrechen
Suchergebnisse werden angezeigt für 
Stattdessen suchen nach 
Meintest du: 
Programmierung
Alles über Programmierung in GDL und Python

3ds Import und Materialeinstellungen

zzyzx
Newcomer
dies hier hat sich aus einem anderen thema im archicadforum ergeben, aus einem problem mit importierten 3ds dateien, die nicht korrekt texturiert werden.
Thema von gzx vom 19. mai 2005: texturen nach gdl. umwandelung nicht richtig

erstmal kommen ein paar einsichten und erläuterungen zu den funktionen des skripts und zu parametereinstellungen solcher objekte, danach bleibt aber noch eine frage offen.
Ausschnitt aus dem 3d skript
</font><blockquote><font size="1" face="Verdana, Helvetica, sans-serif">Code:</font><hr /><pre style="font-size:x-small; font-family: monospace;">
! ......
!Wurde aus der Datei erzeugt:"datei.3ds"
!Anzahl Teilobjekte:5
!Anzahl Polygone :748
!Verwendete Textur:5
IF AC3D_SHOW3D THEN
MUL A/0.5634212, B/0.5400000, zzyzx/0.8400000
hotspot -0.25070, -0.27000, 0.00000
! ......
DEFINE MATERIAL "__GLOBAL_02" 0,
0.862745, 0.862745, 0.862745,
!Oberfläche RGB [0.0..1.0]x3
0.650000, 0.800000, 0.900000, 0.000000,
!Streulicht, Diffus, Spiegelnd, Transparenz
!Koeffizient [0.0..1.0]x4
50.000000,
!Glanz [0.0..100.0]
1.000000,
!Transparenz Abstrahlung [0.0..4.0]
0.862745, 0.862745, 0.862745,
!Spiegelnd RGB [0.0..1.0]x3
0.000000, 0.000000, 0.000000,
!Emission RGB [0.0..1.0]x3
0.000000
!Emission Abstrahlung [0.0..65.5]

! .........
IF use_AC___GLOBAL_02 = 1 THEN
material AC___GLOBAL_02
ELSE
material "__GLOBAL_02"
ENDIF
! .....



ENDIF

also: was passiert hier?
die zeilen mit den "!" sind nur kommentar, also ohne funktion im skript selbst. am anfang also erstmal einige generelle beschreibungen (ursprungsdatei, anzahl der polygone usw),
.
die zeile "IF AC3D_SHOW3D THEN" und ganz am ende das "endif" regeln, ob das dazwisebnstehende überhaupt ausgeführtz wird oder nicht. in der parameterliste gibt es den parameter AC3D_SHOW3D, der muss angekreuzt sein beim einsetzen den objekts mit dem objektwerkzeug), ansonsten wird gar kein modell erzeugt.
.
das MUL bewirkt, dass das objekt in seiner grösse veränderlich ist, würde man die zeile rauslöschen, wäre die grösse fixiert, egal was man bei a, b, zzyzx reintippt
.
hotspot sind 3d fangpunkte
.
im define material teil werden die parameter des materials festgezurrt , ähnlich wie das im otionen materialtypen dialog gemacht wird, aber eben nur mit werten. die zeilen mit dem ! sind nur kommentar und erläutern die davorstehende zeile.
.
entscheidend ist, was dann kommt: mit dem if... teil wird entschieden, ob das intern definierte material, oder ein frei wählbares verwendet werden soll.
Wenn der parameter mit der checkbox (hier der "use_AC___GLOBAL_02") an ist, dann wird der nachfolgende Mataerialwähler aktiviert, also das mit AC___GLOBAL_02 gewählte material tatsächlich verwendet.
...
also: das objekt muss nicht editiert werden, um ein eigenes material zu wählen; dazu einfach in die grundeinstellungen gehen, die checkboxen ankreuzen und die Materialien nach wunsch wählen!
...
...
Aber das problem ist nicht behoben:
gzx: "O.k das mit dem ankreuzen funktioniert schon.und in dem kleinen Vorschau fenster sehe ich auch das, dass Objekt die Fraben ändert wenn ich ein material einstelle, aber es nimmt beim rendern nicht die finale Txtur an."
zzyzx: ok, dann haben wir hier ein problem, das eher mit ArchiCAD 9 zusammenhängt, und da ich das ja nicht habe, kann ich nur begrenzt helfen (ich kann ja nix probieren)
.
es kann nun sein, dass
a) ein problem mit der rendering engine vorliegt; dass die etwa objekte falsch verarbeitet werden, sonstige materialien aber korrekt
b) vielleicht auch nur ein problem der lightworksengine (generell mit texturen)
c) sonst irgendein problem
probier mal, ein kleines wandstück´mit dem material zu belegen und etwa das tischbein. dann beides markieren und rendern.
wenn nun die wand die textur hat, das tischbein aber nicht, haben wir fall a. wenn keins der beiden die textur hat fall b, wenn beide die textur haben ist ja alles gut.
gzx:... also der fall "a" ist eingetroffen.
das hatte ich dir aber auch schon beschrieben.
...also, wenn ich eine wand stelle und die mit der textur nußholz belege, dann ist die im rendering zu sehen aber bei diesem tisch (von dem wir die ganze zeit reden) nicht.
zzyzx:...
(+) die gute nachricht: das ist nicht dein fehler und du hast wahrscheinlich etwas gelernt. (ich auch, über einige eigenheiten der 9 und über den 3ds import)
(-) die schlechte nachricht: ist wohl ein bug, da muss man einen workaround finden oder damit leben.
...
...
...
jetzt bin ich mit meinen ideen relativ am ende, ich könnte mir vorstellen, dass das lightworks eventuell ein problem damit hat, dass die zusatzparameter für lightwork material nicht in den objekten drinstehen, aber das kann nur jemand testen, der ac9 hat und auch ein bisschen gdl erfahrung.
vielleicht hat jemand 'ne idee?
:winken:
2 ANTWORTEN 2
Anonymous
Nicht anwendbar
Ich glaube, das hängt mit der neuen Lightwave-engine zusammen. Die versteht nämlich die ArchiCad-Materialien nicht(die werden ja auch im gdl verwendet). Benutzt man die LWA muß man alle Objekte 2x mit Materialien belegen.
- für die Darstellung im open GL
- für die LW angine

Rendert man die Bilder mit der AC internen engine,
sollte es keine Probleme mehr geben.
Anonymous
Nicht anwendbar
...habe ich gerade probiert, geht nicht!

Gruß gzx