Jump to content
SWRSC

Sub Surface Scattering contest

Recommended Posts

A tu moja pierwsza próba napisania shadera sss do rendermana. Wyrenderowane w nieoptymalizowanym pixie (open sourcowej implementacji rendermana)(cholera muszę sobie pixie skompilować z optymalizacją pod mój sprzęt). W każdym bądź razie rendering trwał

7min 3s

z samplami do shadera światła na poziomie 500, pewnie to nikomu nic nie mówi, powiem tylko, że przy 16 samplach trwa 5s, tylko widać ziarno. Także kolejne zadanie: podjąć próbę optymalizacji shadera :).

oto sam obrazek:

sss.jpg

obiekt oczywiście lewituje i nie ma widocznego cienia :)

 

a tu jakby ktoś był zainteresowany plik rib, z którego można wyczytać wszystkie ustawienia światła :)

 

Option "searchpath" "shader" ["/opt/Pixie/shaders:&"]
Option "searchpath" "shader" ["/home/pieter/3d:&"]
PixelSamples 2 2 
Exposure 1.3 1.3
ShadingRate 2
PixelFilter "catmull-rom" 2 2
Display "/home/pieter/3d/sss.tif" "file" "rgb"
#Display "+/home/pieter/3d//Scene1_cam_1_frame_1.tif" "framebuffer" "rgb"
Hider "hidden"
Format 640 480 1
Projection "perspective" "fov" [35]
Transform [0.685880422592 -0.317370116711 -0.654861986637 0.0 0.727633714676 0.31246855855 0.610665559769 0.0 -0.0108167920262 0.895343244076 -0.44524538517 0.0 -0.338182240725 -0.376693725586 11.2523422241 1.0]


WorldBegin
Attribute "visibility" "transmission" "Os"
LightSource "shadowspot1" 2 "intensity" 70 "from" -8.5 0 3 "to" 0 0 0 "bias" 0.1 "blur" 0.7 "samples" 512 "beamdistribution" 2 "lightcolor" 0.78 0.91 1

AttributeBegin
Attribute "identifier" "name" ["Cube"]
Attribute "displacementbound" "sphere" [2.0]
TransformBegin
Translate -2.5 3 -0.4
Surface "MHmatteNS" "Ka" 0.5 "Kd" 1 "lfact" 0.15 "Ks" 0.7 "roughness" .7
Color 1 0.79 0.6
ReadArchive "/home/pieter/3d///archives//Cube.rib"
TransformEnd
AttributeEnd


AttributeBegin
TransformBegin
Translate 0 0 -4
Surface "plastic" "Ks" 0.3
Color 1 1 1
Disk 1 10 360 
TransformEnd
AttributeEnd


WorldEnd

Share this post


Link to post
Share on other sites

ps. Ile linii kodu wyszło ?

 

łącznie ze standartową pustą linią na końcu pliku 18 :).

No cóż, z założenia nie mialo być fizycznie poprawnie, tylko w w miarę przekonywująco i jak najszybciej.

Share this post


Link to post
Share on other sites
łącznie ze standartową pustą linią na końcu pliku 18 :)
o... to sporo ;)

 

- - - -

 

Southside, serek mogłeś wrzucić do tego czerwonego "opakowania" :)

Share this post


Link to post
Share on other sites

Testuje sobie SSS Physical Material :)

Mental ray

9d899f2e5a1f3438.jpg

Share this post


Link to post
Share on other sites
Guest obo

Wygląda jak świecąca żelka ;)

Share this post


Link to post
Share on other sites

obo - hehe :D

Dalej sobie SSS testuje... (physical oczywiście :))

 

92a449ed6eda6c8e.jpg

PS żelki mają chyba SSS?? :)

Share this post


Link to post
Share on other sites

Najlepszy silnik renderujący na świecie, słyszałem ze Mental nie dorasta mu do pięt :P

Share this post


Link to post
Share on other sites

he he he he .... ale chlopaki pojechaliscie ;P

chyba sie poplacze;)

pozdr.

Share this post


Link to post
Share on other sites

Próba napisania shadera dla Pixie symującego LightTransport.

Render w Pixie trwał około minuty. Na początek eliminacja ciemnej obwódki pomiędzy powierzchnią oświetloną i nieoświetloną.

 

sss1ea9.jpg

Share this post


Link to post
Share on other sites

Kod shader-a po modyfikacjach.

 

color mydiffuse4(normal Norm; float fact; float samples; float cone; float falloff) 
{ 
extern point P;
   color C = 0;    
   illuminance( P ) 
{
 float w = normalize(L).Norm; 
 if ( w >= 0 )
 {
     C = Cl; 
    C += (Cl * w) * fact; 
 }
 else
 {
  float d;
  color Ca;
  gather("illuminance", P, normalize(L) , cone, samples, "ray:length", d, "surface:Ci", Ca)
  {
       float atten;
   if (falloff==0)
    atten=1;
   else if (falloff==2)
    atten=1/(L.L);
   else
    atten = 1/pow(length(L),falloff);
   C += (Ca * atten);
  }

  C /= samples;
 }
}
   return C; 
} 

surface ax_sss(float Ka = 1;
 float Kd = 1; 
 float Ks = 1;
 float roughness = .1; 
 float lfact = 0.25;
 float samples = 1;
 float cone = 0.1;
 float falloff = 0;
 ) 
{
 Oi = Os;
 Ci = Os * Cs * (Ka * ambient() + Kd * mydiffuse4(normalize(N),lfact,samples,cone, falloff )) + Ks*specular(normalize(N),-normalize(I),roughness);

}

 

A tak oftopowo to przy okazji zabawy z Renderman-em zrobilem sobie plugin ktory wczytuje mi obiekty z plikow 3DS.

 

Duzo zabawy i kombinowania z tym Renderman-em a efekty takie sobie ;), dodatkowo w filmach coraz wiecej Mental-a sie uzywa.

Share this post


Link to post
Share on other sites

Jak robicie już sss to dajcie ustawienia jakiejsc firanki, tak zeby przechodzilo przez nie swiatelko.

 

ps. a tak poza tym to do pięt nie dorasta vray mentalowi;p

  • Sad 1

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

We are using cookies. Read about our Privacy Policy