Clay Render V2.0

Max scripts

Moderatorer: Super Moderatorer, Admins

Brukeravatar

Trådstarter
tassel
Innlegg: 3986
Registrert: man 26 sep, 2005
Sted: Oslo
Kontakt:

Clay Render V2.0

Legg innav tassel » søn 11 mar, 2012

Hei,

Her kommer et script jeg pleier å bruke for å ta ut en clay kjapt når jeg trenger det til stilbilder.
[spoiler]

Kode: Velg alt

/*
---------------------------------------------------------------------------------------------------------------------------------------------------------------------
-- Clay Render V2.0 - Scripted Clay Render that keeps everything intact after rendering.

[INFO]
- Put the files in maxroot\scripts\ (e.g.: C:\3dsmax2012\Scripts\)
- Tested with 3DS Max 2012

[CREATION INFO]
Date Created : March 11, 2012
Last Modified: March 11, 2012
Author: Raymond Homme Ingebretsen
Webpage: http://www.homme3d.com

[NOTE]
Use and modify at you own risk.

[SPECIAL THANKS TO]
Anubis for always helping me out <<---->> Webpage: http://project3d.narod.ru
Haavard for always helping me out <<---->> Webpage: http://folk.ntnu.no/havardsc/site/wordpress/
Tronotrond for big help and suport <<---->> Webpage: http://hille3d.no/

[History]
V1.0: First version. Render Clay + Sample spinner Settings
V2.0: Added Environment Color Suport

[KNOWN ISSUES]
NONE
---------------------------------------------------------------------------------------------------------------------------------------------------------------------
*/
try destroyDialog rol_clayRender catch()

rollout rol_ClayRender "Clay Render V2.0"
(
   group ""
   (
      colorpicker clp_color "Environment Color:" modal:false width:160 height:18 color:white align:#right tooltip:"Environment Color"
      spinner spn_clay "Samples:" width:95 height:18  align:#right type:#integer range:[1,24,12] tooltip:"Set Number of Samples\n 1 = Dirty\n 24 = Smooth"
      button btn_clayRender "..:: CLAY RENDER ::.." width:135 height:25 align:#left tooltip:"Render Clay and sett everything back to original state." across:2
      button btn_about "?" width:25 height:25 align:#right tooltip:"About"
   )
      HyperLink Hypl_homepage "..:: Raymond H.Ingebretsen'2012 ::.." address:"http://www.homme3d.com" color:(color 255 255 255) hovercolor:(color 111 111 111) visitedcolor:(color 255 255 255) align:#center

   on btn_clayRender pressed do
   (
      prevRender = renderers.production
      undo on
      (
         $geometry.material = standard diffuse:(color 220 220 220) twosided:true
         $lights.enabled = false
         ThisSkylight = skylight castShadows:true rays_per_sample:spn_clay.value color:clp_color.color
         renderers.production = default_scanline_renderer()
      )
     
      render progressBar:true cancelled:&renderCanceled
     
      if renderCanceled then
         messageBox "Render Canceled..." title:"Clay Render Message..."
     
      renderers.production = prevRender
      max undo
      gc light:true
   )
   
   on btn_about pressed do
   (
      messageBox "Special Thanks to: Hardrock_ram and Havards @ 3dhue.com\n - For always helping out.." title:"About Clay Render..."
   )
   
) -- End rollout

createDialog rol_clayRender 190 120 90 150

--// EOF

[/spoiler]
Du har ikke de nødvendige tillatelsene for å vise filene som er tilknyttet dette innlegget.

Brukeravatar

v@la
Innlegg: 2228
Registrert: tor 04 mai, 2006
Sted: Porsgrunn
Kontakt:

Legg innav v@la » man 12 mar, 2012

Takker! Denne har jeg brukt noen ganger :)
3D Designer / Animatør
www.mediateam.no
www.3dvala.com

Brukeravatar

Mikademius
Innlegg: 1625
Registrert: man 24 apr, 2006
Sted: Oslo, Norge
Kontakt:

Legg innav Mikademius » man 12 mar, 2012

Den saa ganske digg ut...
Kjapt og fint.
Martin Andersson | COO - The Floor Above AB. | Line Producer - Qvisten Animation www.thekove.com | www.animation-hut.no

Brukeravatar

larsem8
Innlegg: 1506
Registrert: ons 09 nov, 2005
Sted: Kristiansand

Legg innav larsem8 » tir 13 mar, 2012

Denne var grei :)
Et tips: hva med en cancel render-knapp?
Alle gode ting er 3D

Brukeravatar

Trådstarter
tassel
Innlegg: 3986
Registrert: man 26 sep, 2005
Sted: Oslo
Kontakt:

Legg innav tassel » tir 13 mar, 2012

larsem8 skrev:Denne var grei :)
Et tips: hva med en cancel render-knapp?


Har du prøvd escape tasten under rendering? :wink:

Men; Hele poenget her er at du ikke skal avbryte, da vil den ikke gå tilbake på settingsene du hadde før du starta renderinga. Derfor jeg bruker "undo on" og "max undo" igjen :)

Brukeravatar

larsem8
Innlegg: 1506
Registrert: ons 09 nov, 2005
Sted: Kristiansand

Legg innav larsem8 » tir 13 mar, 2012

haha! Ja, det er jo helt utrolig hva man ikke tenker på noen ganger :-)
Alle gode ting er 3D


hardrock_ram
Innlegg: 1502
Registrert: ons 07 feb, 2007
Sted: Kristiansand

Legg innav hardrock_ram » ons 14 mar, 2012

Er det ikke bare å gjøre slik som i koden under for å sørge for at escape funker? (Sitter ikke på en PC nå, så får ikke testa).
Skjønner ikke helt hvorfor den ikke skulle kjøre undo uansett. Den avbryter vel ikke scriptet bare fordi man avbryter renderinga med escape?
I tillegg satt jeg lux til å bare slå av lyset isteden for å slette det. Vet ikke om det har noe å si for renderingen, men hos meg mistet lysene den "visuelle representasjonen" i scenen etter at de ble slettet og hentet fra igjen med undo. Jeg kunne fremdeles velge dem, men de syntes ikke. Ved å sette enabled til false isteden skjedde ikke dette.

[spoiler]

Kode: Velg alt

try destroyDialog rol_clayRender catch()

rollout rol_ClayRender "Clay Render V2.0"
(
   group ""
   (
      colorpicker clp_color "Environment Color:" modal:false width:160 height:18 color:white align:#right tooltip:"Environment Color"
      spinner spn_clay "Samples:" width:95 height:18  align:#right type:#integer range:[1,24,12] tooltip:"Set Number of Samples\n 1 = Dirty\n 24 = Smooth"
      button btn_clayRender "..:: CLAY RENDER ::.." width:170 height:25 align:#center tooltip:"Render Clay and sett everything back to original state."
   )
      HyperLink Hypl_homepage "..:: Raymond H.Ingebretsen'2012 ::.." address:"http://www.homme3d.com" color:(color 255 255 255) hovercolor:(color 111 111 111) visitedcolor:(color 255 255 255) align:#center

   on btn_clayRender pressed do
   (
      --Variabler
      local ExistingRenderSettings
      
      undo on
      (
         EnvironmentMat = standard diffuse:(color 220 220 220) twosided:true
         for obj in objects do obj.material = EnvironmentMat
            for lux in lights do lux.enabled = false
               ThisSkylight = skylight castShadows:true rays_per_sample:spn_clay.value color:clp_color.color

         ExistingRenderSettings = renderers.production
         renderers.production = default_scanline_renderer()
      )
      render()
      renderers.production = ExistingRenderSettings
      max undo
   )   
)

createDialog rol_clayRender 190 120 90 150
[/spoiler]
Sist redigert av hardrock_ram den ons 14 mar, 2012, redigert 1 gang totalt.
if your not living on a killing ground, you better make your own

Brukeravatar

Trådstarter
tassel
Innlegg: 3986
Registrert: man 26 sep, 2005
Sted: Oslo
Kontakt:

Legg innav tassel » ons 14 mar, 2012

hardrock_ram skrev:Er det ikke bare å gjøre slik som i koden under for å sørge for at escape funker? (Sitter ikke på en PC nå, så får ikke testa).
Skjønner ikke helt hvorfor den ikke skulle kjøre undo uansett. Den avbryter vel ikke scriptet bare fordi man avbryter renderinga med escape?
I tillegg satt jeg lux til å bare slå av lyset isteden for å slette det. Vet ikke om det har noe å si for renderingen, men hos meg mistet lysene den "visuelle representasjonen" i scenen etter at de ble slettet og hentet fra igjen med undo. Jeg kunne fremdeles velge dem, men de syntes ikke. Ved å sette enabled til false isteden skjedde ikke dette.
[spoiler]

Kode: Velg alt

try destroyDialog rol_clayRender catch()

rollout rol_ClayRender "Clay Render V2.0"
(
   group ""
   (
      colorpicker clp_color "Environment Color:" modal:false width:160 height:18 color:white align:#right tooltip:"Environment Color"
      spinner spn_clay "Samples:" width:95 height:18  align:#right type:#integer range:[1,24,12] tooltip:"Set Number of Samples\n 1 = Dirty\n 24 = Smooth"
      button btn_clayRender "..:: CLAY RENDER ::.." width:170 height:25 align:#center tooltip:"Render Clay and sett everything back to original state."
   )
      HyperLink Hypl_homepage "..:: Raymond H.Ingebretsen'2012 ::.." address:"http://www.homme3d.com" color:(color 255 255 255) hovercolor:(color 111 111 111) visitedcolor:(color 255 255 255) align:#center

   on btn_clayRender pressed do
   (
      --Variabler
      local ExistingRenderSettings
      
      undo on
      (
         EnvironmentMat = standard diffuse:(color 220 220 220) twosided:true
         for obj in objects do obj.material = EnvironmentMat
            for lux in lights do lux.enabled = false
               ThisSkylight = skylight castShadows:true rays_per_sample:spn_clay.value color:clp_color.color

         ExistingRenderSettings = renderers.production
         renderers.production = default_scanline_renderer()
      )
      render()
      renderers.production = ExistingRenderSettings
      max undo
   )   
)

createDialog rol_clayRender 190 120 90 150

[/spoiler]


:wink:


hardrock_ram
Innlegg: 1502
Registrert: ons 07 feb, 2007
Sted: Kristiansand

Legg innav hardrock_ram » ons 14 mar, 2012

Var det manglende spoiler du tenkte på tassel? :P
if your not living on a killing ground, you better make your own

Brukeravatar

Trådstarter
tassel
Innlegg: 3986
Registrert: man 26 sep, 2005
Sted: Oslo
Kontakt:

Legg innav tassel » ons 14 mar, 2012

Nix.. Det er bare flott du fikser :)


hardrock_ram
Innlegg: 1502
Registrert: ons 07 feb, 2007
Sted: Kristiansand

Legg innav hardrock_ram » ons 14 mar, 2012

Det er det som er ... jeg er usikker på om endringene jeg gjorde er en fiks eller ikke. Å sette lux til disabled isteden for å slette dem virker bare mindre "grovt", mens å putte alt som ikke skal undoes (render(), sette riktig rendermotor tilbake osv.) utenfor undo-blokka virker mer naturlig. Jeg kan ikke fatte annet enn at det skal fungere fint å avbryte render med escape, og allikevel få innstillingene tilbake nå :)
Hvis ikke finnes det sikkert et callback man kan bruke for å fikse evt. problemer når renderen avbrytes ... Havards vet sikkert alt dette :)
if your not living on a killing ground, you better make your own

Brukeravatar

Trådstarter
tassel
Innlegg: 3986
Registrert: man 26 sep, 2005
Sted: Oslo
Kontakt:

Legg innav tassel » ons 14 mar, 2012

Vi får se, bruker det ikke for øyeblikket, men vi finner jo utav om det virker eller ikke :)
Haavards er GUD, sånn er det bare. :wink:

Brukeravatar

havards
Innlegg: 211
Registrert: ons 13 des, 2006

Legg innav havards » tor 15 mar, 2012

[spoiler]Bilde[/spoiler]

Det hardrock_ram sier er riktig og mer effektivt. Om en render blir canceled av brukeren så vil fortsatt resten av scriptet kjøre og undo-opplegget vil restette alt tilbake, men om du vil sjekke om det har blitt canceled så fyrer du en variabel inn som parameter i render-metoden og sjekker den etter metoden har blitt kalt. Material og enabled-propertiesene er mapped så du kan f.eks like godt skrive$lights.enabled = false i stedet for ei forløkke.

Kode: Velg alt

(
   prevRender = renderers.production       
   undo on
   (
      $geometry.material = standard diffuse:gray twoSided:true
      $lights.enabled = false
      skylight castShadows:true rays_per_sample:12 color:white
      renderers.production = default_scanline_renderer()
   )
   render progressBar:true cancelled:&renderCanceled
   if renderCanceled then
      messageBox "1.Render canceled.\n2.Handle errors.\n3.????\n4.Profit."
   renderers.production = prevRender
   max undo
   gc light:true
)

Hvis du kaller på render-metoden og ingen viewport er active så krasjer hele greia, du kan kanskje legge inn en sjekk for det også. Noe ala if viewport.gettype() != undefined
02:14 Misfortune • hun skjuler så jævlig mye i smutthølet
http://folk.ntnu.no/havardsc/site/wordpress/

Brukeravatar

Trådstarter
tassel
Innlegg: 3986
Registrert: man 26 sep, 2005
Sted: Oslo
Kontakt:

Legg innav tassel » tor 15 mar, 2012

Takker for all feedback folkens.
Kanskje man skulle bli flinkere til å legge ut scripts for tilbakemelding her :)

Så da blir det slik:

Kode: Velg alt


try destroyDialog rol_clayRender catch()

rollout rol_ClayRender "Clay Render V2.0"
(
   group ""
   (
      colorpicker clp_color "Environment Color:" modal:false width:160 height:18 color:white align:#right tooltip:"Environment Color"
      spinner spn_clay "Samples:" width:95 height:18  align:#right type:#integer range:[1,24,12] tooltip:"Set Number of Samples\n 1 = Dirty\n 24 = Smooth"
      button btn_clayRender "..:: CLAY RENDER ::.." width:135 height:25 align:#left tooltip:"Render Clay and sett everything back to original state." across:2
      button btn_about "?" width:25 height:25 align:#right tooltip:"About"
   )
      HyperLink Hypl_homepage "..:: Raymond H.Ingebretsen'2012 ::.." address:"http://www.homme3d.com" color:(color 255 255 255) hovercolor:(color 111 111 111) visitedcolor:(color 255 255 255) align:#center

   on btn_clayRender pressed do
   (
      prevRender = renderers.production
      undo on
      (
         $geometry.material = standard diffuse:(color 220 220 220) twosided:true
         $lights.enabled = false
         ThisSkylight = skylight castShadows:true rays_per_sample:spn_clay.value color:clp_color.color
         renderers.production = default_scanline_renderer()
      )
      
      render progressBar:true cancelled:&renderCanceled
      
      if renderCanceled then
         messageBox "Render Canceled..." title:"Clay Render Message..."
      
      renderers.production = prevRender
      max undo
      gc light:true
   )
   
   on btn_about pressed do
   (
      messageBox "Special Thanks to: Hardrock_ram and Havards @ 3dhue.com\n - For always helping out.." title:"About Clay Render..."
   )
   
) -- End rollout

createDialog rol_clayRender 190 120 90 150

--// EOF


Gå tilbake til «Max scripts»

Hvem er online

Brukere i dette forumet: Google [Bot] og 2 gjester

cron