Archiv der Kategorie: 3D

Erst mal nur 3Ds Max…

mr shader – zusätzliche Pfade einrichten

Benutzerdefinierten Shader-Pfad einrichten

Nach der Installation einer neuen 3Ds Max Installation müssen zwei „rayrc“ Files editiert werden, damit mental ray später neue shader findet.

Unter „C:\Pfad zu 3Ds Max\NVIDIA\Satellite“ muss das File „rayrc“ mit einem Text-Editor geöffnet werden und an die bestehenden Pfade der neue Pfad (wenn Netzwerkpfad, dann UNC (\\Computername), kein Netzlaufwerk Buchstabe):

;D:\mrUserShaders\shaders bzw. ;\\Computername\mrUserShaders\shaders

angehängt werden. Der komplette Text muss dann wie folgen aussehen:

registry „{_MI_REG_LIBRARY}“ value „..\shaders_standard\mentalray\shaders;..\shaders_3rdparty\mentalray\shaders;..\shaders_autoload\mentalray\shaders;\\Computername\mrUserShaders\shaders“ end registry

Unter „C:\Pfad zu 3Ds Max\NVIDIA“ befindet sich auch noch ein „rayrc“ File welches editiert werden muss. Hier müssen am Ende der Datei diese Zeilen angehängt werden:

# extra shader path

registry „{_MI_REG_INCLUDE}“ value „\\Computername\mrUserShaders\include“ end registry
registry „{_MI_REG_LIBRARY}“ value „\\Computername\mrUserShaders\shaders“ end registry
$include „\\Computername\mrUserShaders\mrExtraShaders.mi“
$lookup „{_EXTRA_SHADER_PATH}“

Die Datei „\\Computername\mrUserShaders\mrExtraShaders.mi“ muss natürlich angelegt werden und sollte in etwas diesen Inhalt haben:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#*****************************************************************************
# Copyright 2005 by Autodesk
# 
#*****************************************************************************
# Author:	Daniel Levesque
# Created:	05 April 2004
# modified:     16 January 2014 (Jonathan Baecker)
# Purpose:	Main file for including all extra shader definitions.
#****************************************************************************/
 
registry "{_EXTRA_SHADER_PATH}"
 
	# Add "link" and "mi" statements here, to load your shaders.
 
	# Example:
	#link "base.dll"
	#mi "base.mi"
 
end registry

 

Neue Shader und Phenomenons

Neue Shader und Phenomons können jetzt nach:

\\Computername\mrUserShaders

kopiert werden. Wurden die *.dll bzw. *.mi Dateien in die entsprechenden Ordner kopiert müssen diese zuletzt noch verlinkt werden. Das geschieht in der Datei

\\Computername\mrUserShaders\mrExtraShaders.mi“

Auch diese Datei kann mit einem Text-Editor geöffnet werden. Dort wird die *.dll Datei mit „link“ und die *.mi mit mi deklariert. Z.B.:

link „shader.dll“
mi „shader.mi“

Die korrekte Stelle für diese Einträge befindet sich zwischen:

registry „{_EXTRA_SHADER_PATH}“

und:

end registry

Vertices von Objekte in Selektion nacheinander welden

Mit dem folgenden maxscript lassen sich Vertices von selektierten Objekten nacheinander verschweiße. Kann praktisch sein wenn es sich um sehr viele Objekte handelt und Max bei einem einzelnen Durchgang einzufrieren drohen würde.

Der Print- Befehl im Script zeigt im Listener den Fortschritt an. Damit während des Prozesses Max nicht aufhört zu reagieren wird alle 5 Sekunden der Bildschirm refresht.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
clearlistener()
 
sel = selection
startID = timeStamp()
for i = 1 to sel.count do (
    ConvertTo sel[i] Editable_Poly
    sel[i].weldThreshold = 0.001
    allVerts = #{1..(polyop.getNumVerts sel[i])}
    polyop.weldVertsByThreshold sel[i] allVerts
    print (i as string + " from " + sel.count as string + " welded...")
    stampID = timeStamp()
    if (((stampID - startID) / 1000.0) >= 5.00) do (
        startID = timeStamp()
        windows.processPostedMessages()
        )
    )

Unified Sampling in 3ds max 2014 / mental ray

Für unseren Firmenblog hatte ich vor kurzem einen Artikel geschrieben über das Unified Sampling. Zu finden ist der Artikel unter:

http://animationsandmore.wordpress.com/2013/09/23/unified-sampling/

Eine etwas ausführlichere Erklärung von einem anderen Autor, in Englisch, gibt es auch noch hier:

http://elementalray.wordpress.com/2011/11/30/unified-sampling-visually-for-the-artist/

GUI für user_ibl_rect

In 3ds Max 2014 (früher vielleicht auch schon), läuft der user_ibl_rect shader eigentlich recht gut. Um ihn zu verwenden muss er in dem „standard.mi“ file verlinkt werden.

Hier noch eine passende GUI dafür:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
   gui "gui_user_ibl_rect" {
        control "Global"  "Global" (
            "uiName"      "User IBL Rectangle"
        )
        control "texture" "color texture" (
			"uiName" "HDR Texture"
			)
        control "samples" "integer" (
			"uiName" "Samples",
			"value" 0,
			"nonConnectable"
			)
        control "color" "color" (
			"uiName" "Color",
			"value" 1 1 1
			)
        control "intensity" "scalar" (
			"uiName" "Intensity",
			"value" 1.0
			)
		control "shadow_mode" "integer" (
			"uiName" "Shadow Mode",
			"enum",
			"value" "0 no shadow, 1 opaque, 2 transparent",
			"range"  0 2,
			"nonConnectable"
			)
		control "cone" "scalar" (
			"uiName" "Cone",
			"value" 90.0
			)	
		control "falloff" "scalar" (
			"uiName" "Falloff",
			"value" 2.0
			)
		control "angular_falloff" "scalar" (
			"uiName" "Angular Falloff",
			"value" 1.0
			)
		control "swap_uv" "boolean" (
			"uiName" "Swap UV",
			"nonConnectable"
			)
    }

Vielleicht zu dem Thema die Tage noch mehr.