Render.ru

Создание материала FastSSS2, не присваиваются текстуры.

Fat@lix3D_MX

Активный участник
Рейтинг
10
#1
Доброго времени суток, у меня такая проблема.
1)Создаю через скрипт материал FastSSS2, настраиваю и указываю текстуры все хорошо.
2)В этом же скрипте создаю второй материал и все так же настраиваю, НО! текстура не присваевается. Если вручную начинаю указывать файл, то имя файла ввиде пути к текстуре. И еще один интересный момент если указать в кач. текстуры файл который юзал в первом материале, он ложиться нормально.

Подскажите пожалуйста что не так? Ниже мой код.

Код:
rollout test "Fatalix3d" width:143 height:171
(
	GroupBox grp3 "Fatalix3d Toolbar" pos:[4,5] width:131 height:159
	
	button theButton "Aldar RPLS" pos:[12,21] width:108 height:28
	button theButton3 "Bay RPLS" pos:[12,53] width:108 height:28
	button theButton2 "Remove MrLight's" pos:[12,85] width:108 height:28
	button theButton4 "Bay RPLS" pos:[12,118] width:108 height:28
	
	on theButton4 pressed do(
	)

	on theButton3 pressed do(
	----BAY
	select #($'bay:body', $bay, $'bay:jaw', $'bay:tonque', $'bay:Hips', $'bay:Spine', $'bay:Spine1', $'bay:Spine2', $'bay:Spine3', $'bay:Neck', $'bay:Head', $'bay:Head1', $'bay:Head2', $'bay:shapka', $'bay:Jaw', $'bay:Jaw1', $'bay:RightBrow', $'bay:RightBrow1', $'bay:LeftBrow', $'bay:LeftBrow1', $'bay:RightEye', $'bay:LeftEye', $contrl1, $Rectangle001, $Rectangle009, $Rectangle002, $Rectangle004, $Circle001, $bay_ctrl_line2, $bay_ctrl_line5, $Rectangle005, $Circle002, $Circle005, $Rectangle010, $Circle006, $bay_ctrl_line7, $bay_ctrl_line8, $Rectangle011, $Rectangle013, $Circle007, $bay_ctrl_line3, $bay_ctrl_line4, $Rectangle014, $bay_ctrl_line6, $bay_ctrl_line1, $contrl2, $Rectangle015, $Text001, $Text002, $Text003, $Text004, $Text005, $Text006, $Text007, $Text008, $Text009, $Text010, $Rectangle016, $Circle008, $Rectangle017, $Circle009, $Rectangle018, $Circle010, $Rectangle019, $Circle011, $Rectangle020, $Circle012, $Rectangle021, $Circle013, $Rectangle022, $Circle014, $Rectangle023, $Circle015, $Rectangle024, $Circle016, $Rectangle025, $Circle017, $Rectangle026, $Circle018, $Text011, $'bay:LeftShoulder', $'bay:LeftArm', $'bay:LeftForeArm', $'bay:LeftHand', $'bay:LeftHandThumb1', $'bay:LeftHandThumb2', $'bay:LeftHandThumb3', $'bay:LeftHandThumb4', $'bay:LeftHandPinky1', $'bay:LeftHandPinky2', $'bay:LeftHandPinky3', $'bay:LeftHandPinky4', $'bay:LeftHandRing1', $'bay:LeftHandRing2', $'bay:LeftHandRing3', $'bay:LeftHandRing4', $'bay:LeftHandMiddle1', $'bay:LeftHandMiddle2', $'bay:LeftHandMiddle3', $'bay:LeftHandMiddle4', $'bay:LeftHandIndex1', $'bay:LeftHandIndex2', $'bay:LeftHandIndex3', $'bay:LeftHandIndex4', $'bay:RightShoulder', $'bay:RightArm', $'bay:RightForeArm', $'bay:RightHand', $'bay:RightHandThumb1', $'bay:RightHandThumb2', $'bay:RightHandThumb3', $'bay:RightHandThumb4', $'bay:RightHandIndex1', $'bay:RightHandIndex2', $'bay:RightHandIndex3', $'bay:RightHandIndex4', $'bay:RightHandMiddle1', $'bay:RightHandMiddle2', $'bay:RightHandMiddle3', $'bay:RightHandMiddle4', $'bay:RightHandRing1', $'bay:RightHandRing2', $'bay:RightHandRing3', $'bay:RightHandRing4', $'bay:RightHandPinky1', $'bay:RightHandPinky2', $'bay:RightHandPinky3', $'bay:RightHandPinky4', $'bay:RightUpLeg', $'bay:RightLeg', $'bay:RightFoot', $'bay:RightToeBase', $'bay:RightToes', $'bay:LeftUpLeg', $'bay:LeftLeg', $'bay:LeftFoot', $'bay:LeftToeBase', $'bay:LeftToes', $'bay:halat', $'bay:rubaha', $'bay:poyas')
	actionMan.executeAction 0 "40142"  -- Groups: Group Open
	select $'bay:body'
	modPanel.setCurrentObject $'bay:body'.baseObject
	subobjectLevel = 5
	$.EditablePoly.SetSelection #Face #{1..4802}
	macros.run "Editable Polygon Object" "EPoly_Hide"
	$.EditablePoly.SetSelection #Face #{4803..5194}
	$.EditablePoly.setMaterialIndex 2 1
	macros.run "Editable Polygon Object" "EPoly_UnHide"
	subobjectLevel = 0
	actionMan.executeAction 0 "40143"  -- Groups: Group Close
	
		-------------------------------------------------------------------------------------
	actionMan.executeAction 0 "50048"  -- Tools: Material Editor Toggle
	max mtledit
	
	macros.run "Medit Tools" "clear_medit_slots"
	
	mm = multimaterial numsubs:2 -- create multimaterial 
	meditMaterials[2] = mm	--assign 1-st slot this material (MM is a var [material:index])
	
	mm[1]= VRayFastSSS2 ()
	mm[1].preset = 2
	
	mm[1].ior = 1.3
	mm[1].sub_surface_color = color 112.2 58.65 33.15
	mm[1].scatter_color = color 93.6666 34.8457 17.4088
	mm[1].scatter_radius = 0.6
	mm[1].specular_amount = 0.7
	mm[1].specular_glossiness = 0.5
	mm[1].diffuse_color = color 112.2 58.65 33.15
	mm[1].diffuse_amount = 0
	mm[1].phase_function = 0.8
	mm[1].overall_color = color 255 255 255
	mm[1].specular_color = color 255 255 255
	
	--assign texture
	mm[1].texmap_diffuse_color = Bitmaptexture fileName:"\\Farmserver\E\50SKAZOK_ALDARA\2-UGOSZENIE_BAYA\TEXTURES\aldar_body2.jpg"
	mm[1].texmap_diffuse_amount = Bitmaptexture fileName:"\\Farmserver\E\50SKAZOK_ALDARA\2-UGOSZENIE_BAYA\TEXTURES\aldar_body2.jpg"


	mm[2].Diffuse = color 218 218 218
	
	---Assign material to mesh (Aldar)
	$'bay:body'.material = meditMaterials[2]
		)
		
	on theButton2 pressed do(
	select #($Sky002, $Sky001, $'mr Area Spot Area')
	actionMan.executeAction 0 "40020"  -- Edit: Delete Objects
		)
		
	on theButton pressed do(
		select #($aldar_body, $Aldar, $aldar_sapog_R, $aldar_shtani, $aldar_tubeteyka, $aldar_pojas, $aldar_rubaha, $aldar_kurtka, $aldar_sapog_L, $aldar_tongue, $aldar_hair, $aldar_jaw)
			actionMan.executeAction 0 "40142"
				select $aldar_body
				max modify mode
					modPanel.setCurrentObject $aldar_body.baseObject
						subobjectLevel = 5
							modPanel.setCurrentObject $aldar_body.baseObject
	$.EditablePoly.SetSelection #Face #{1..5378}
	$.EditablePoly.Hide #Face
	
	--Search Aldar's tooth
	$.EditablePoly.SetSelection #Face #{5379..5782} -- select all zubi
		$.EditablePoly.setMaterialIndex 2 1	--assign material ID to 2
			$.EditablePoly.unhideAll #Face
	
	subobjectLevel = 0
	max create mode
	actionMan.executeAction 0 "40143"  -- Groups: Group Close
	
	-------------------------------------------------------------------------------------
	actionMan.executeAction 0 "50048"  -- Tools: Material Editor Toggle
	max mtledit
	
	macros.run "Medit Tools" "clear_medit_slots"
	
	mm = multimaterial numsubs:2 -- create multimaterial 
	meditMaterials[1] = mm	--assign 1-st slot this material (MM is a var [material:index])
	
	mm[1]= VRayFastSSS2 ()
	mm[1].preset = 1
	
	mm[1].ior = 1.3
	mm[1].sub_surface_color = color 112.2 58.65 33.15
	mm[1].scatter_color = color 93.6666 34.8457 17.4088
	mm[1].scatter_radius = 0.6
	mm[1].specular_amount = 0.7
	mm[1].specular_glossiness = 0.5
	mm[1].diffuse_color = color 112.2 58.65 33.15
	mm[1].diffuse_amount = 0
	mm[1].phase_function = 0.8
	mm[1].overall_color = color 255 255 255
	mm[1].specular_color = color 255 255 255
	
	--assign texture
	mm[1].texmap_diffuse_color = Bitmaptexture fileName:"\\Farmserver\E\50SKAZOK_ALDARA\2-UGOSZENIE_BAYA\TEXTURES\aldar_body.jpg"
	mm[1].texmap_diffuse_amount = Bitmaptexture fileName:"\\Farmserver\E\50SKAZOK_ALDARA\2-UGOSZENIE_BAYA\TEXTURES\aldar_body.jpg"
	
	mm[2].Diffuse = color 218 218 218
	
	---Assign material to mesh (Aldar)
	$aldar_body.material = meditMaterials[1]
	
		)
)
createDialog test 143 171 --create's form
 

JBond

Знаток
Рейтинг
33
#2
Код нужно упростить. Если два раза один и тот же материал создается может проще в одну функцию свести?
И такие моменты - зачем два раза один и тот же путь писать ? Может свести путь в одну переменную ? Меньше исправлять и не надо сравнивать полчаса один ли этот путь или нет.
---------------
mm[1].texmap_diffuse_color = Bitmaptexture fileName:"\\Farmserver\E\50SKAZOK_ALDARA\2-UGOSZENIE_BAYA\TEXTURES\aldar_body.jpg"
mm[1].texmap_diffuse_amount = Bitmaptexture fileName:"\\Farmserver\E\50SKAZOK_ALDARA\2-UGOSZENIE_BAYA\TEXTURES\aldar_body.jpg"
---------------------

aldar_body_map = "\\Farmserver\E\50SKAZOK_ALDARA\2-UGOSZENIE_BAYA\TEXTURES\aldar_body.jpg"
mm[1].texmap_diffuse_color = Bitmaptexture fileName:aldar_body_map
mm[1].texmap_diffuse_amount = Bitmaptexture fileName:aldar_body_map

Ошибки проще искать в читаемом коде
 

Fat@lix3D_MX

Активный участник
Рейтинг
10
#3
Большое спасибо, оптимизировал код, а что бы текстура цеплялась надо путь указать вот так "\\\farmserver....", то есть 3 слеша)).

Есть еще вопрос как достучаться со скрипта до vray object properties? Я настраиваю там матте и выключаю генерацию ГИ и т.д.
 

JBond

Знаток
Рейтинг
33
#4
setUserProp <node> "VRay_Matte_Enable True" false -- в таком стиле

Переменные на картинке
 

Вложения

Сверху