• Forum
  • Education
  • Rendering Software
  • Renderman
  • Test images from ZJ
  • Coolthreads cool cool
    Adversitment
    + Reply to Thread
    Page 1 of 6 1 2 3 4 ... LastLast
    Results 1 to 20 of 101

    1. zj's Avatar

      China

      zj is on a distinguished road

      Join Date:

      Jun 2003

      Posts:

      76

      Rep Power:

      12

      June 15, 2003

      # 1
      Hello,

      This is my first post. Here I will show some interesting test images from the shaders I am working with, and this is the first one.

      A lot of particles rendered with a shadowcloud shader. I managered to add self-shadowing, and the render is very slow. But the effects is not too bad,is it?

        Attached Thumbnails:

        Click image for larger version

Name:	cloud_testx.jpg
Views:	44
Size:	11.8 KB
ID:	36  

    2. NoRB's Avatar

      France

      NoRB is on a distinguished road

      Join Date:

      Jul 2002

      Posts:

      22

      Rep Power:

      0

      June 16, 2003

      # 2
      Yes, great picture !
      But can we have a bigger one ? Because with the two picture in one ( Rendering and working window ) the rendering is really small !
      Good job for me !

      NoRB

    3. June 16, 2003

      # 3
      Thanks for reply. I am developing some volume shader to render the nebula effects for my personal project, and this is the first step. I will let the color receive camera mapping to get more controls. Since the render is quite slow, I have only small renders now, but I will post any thing cool enough in the future.

    4. Alancran's Avatar

      Canada

      Burnaby

      Autodesk Maya

      Alancran is on a distinguished road

      Join Date:

      Feb 2002

      Posts:

      180

      Rep Power:

      13

      June 16, 2003

      # 4
      It looks really good! any insights on how u doing it?
      Al

    5. June 17, 2003

      # 5
      I start working on it when I follow the book of Advanced RenderMan. The cloud is nothing more than a lot of particles rendered with a volume shader. I want precise controls of the shape of the cloud and minimum setup. And the cloud can even interact with other objects in the scene. So the idea of Maya Fluid dynamics is quickly rejected.
      The image below is simply a lot of particles lighted from the right. Notice the new shader has color and shadow controls. In fact there is a slight glow color.

        Attached Thumbnails:

        Click image for larger version

Name:	cloud3.jpg
Views:	38
Size:	13.2 KB
ID:	10034  

    6. June 17, 2003

      # 6
      Another render with lower density.
      The basic idea of the shader is ray-march along viewing vector within a sphere to find out volume density, and at each sample point perform ray marching along light vector to get self-shadowing.

        Attached Thumbnails:

        Click image for larger version

Name:	cloud4.jpg
Views:	39
Size:	12.3 KB
ID:	10035  

    7. June 17, 2003

      # 7
      This is the screenshot of the particles to render. Each of them is nearly transparent,but lots of them overlapping together can present a nice cloud.

      The fatal problem of this solution is speed. I can not wait until a single frame is rendered. Since the density function is a pure fBm noise, the color of the cloud is hard to control. It is impossible to point on the screen and darken specified areas.

      So I finally abandon a full ray-marched cloud, and I will try to combine precedural and painted textures together to get more controls and faster renders.

        Attached Thumbnails:

        Click image for larger version

Name:	Capture_2.jpg
Views:	39
Size:	11.0 KB
ID:	10036  

    8. June 17, 2003

      # 8
      I post the template of cloud here. Impossible to use in production, but good for learning to write shaders maybe.


      slim 1 extensions zhangdb {
      extensions zhang pxsl {

      template shadingmodel cloud {



      parameter float step {

      default 0.5
      }

      parameter float radius {
      detail uniform
      description "Radius of the sphere to do ray marching."
      default 1
      }
      parameter float frequency {
      detail uniform
      default 1
      }

      parameter float octaves {
      detail uniform
      subtype slider
      range {1 6 1}
      default 2
      }
      parameter float lacunarity {
      detail uniform
      default 2
      }
      parameter float gain {
      detail uniform
      subtype slider
      range {0 1 0.001}
      default 0.5
      }

      parameter float density {
      label "cloud density"
      detail uniform
      default 0.5
      }
      parameter float dens {
      label "shadow density"
      detail uniform
      default 4
      }
      parameter color cloudcolor {
      label "cloud color"
      detail uniform
      default {1 0.9 0.675}
      }
      parameter color shdcolor {
      label "shadow color"
      detail uniform
      default {0 0 0}
      }
      parameter color glowcolor {
      label "glow color"
      detail uniform
      default {0 0.125 0.125}
      }



      collection shadingmodel shadingmodel {
      access output
      display hidden
      parameter color CI {
      detail varying
      default "0 0 0"
      access output
      }
      parameter color OI {
      detail varying
      default "0 0 0"
      access output
      }
      }
      RSLFunction {
      #include "noises.h"
      void
      pxslcloud(
      float step;

      uniform float radius,freq,octaves,lacunarity,gain,K,Kshd;
      uniform color cloudcolor,shadowcolor,glowcolor;
      output color CI;
      output color OI; )
      {
      float mindist(point q,p1,p2
      {
      vector p1toq = q - p1;
      vector p1top2 = p2 - p1;
      float ang = acos(normalize(p1toq).normalize(p1top2));
      return length(p1toq)*sin(ang);
      }
      float spherehit(float radius;point center,Q; vector V)
      {
      vector qtoc = center - Q;
      float toc = length(qtoc);
      float dist = mindist( center, Q, Q+V);
      float mid = sqrt(radius*radius - dist*dist);
      float way = sqrt(toc*toc - dist*dist);
      /*Calculate sphere ray hit length*/
      float hit;
      if(L.qtoc>0)
      hit = mid + way;
      else
      hit = mid - way;
      return max(hit,1.0e-6);
      }
      float get_density (point Psample; float stepsize,unitsize;uniform float frequency,octaves,lacunarity,gain
      {

      float density = 0.5+0.5*fBm(Psample/unitsize*frequency,stepsize/unitsize*frequency,octaves,lacunarity,gain);

      density = pow ( clamp(density,0,1),3);

      return density;
      }
      color get_lightcolor(point Q,center;float step;uniform float freq,radius,octaves,lacunarity,gain,scale;uniform color shadowcolor)
      {
      float shd=0;
      color C=0;
      illuminance(Q){

      extern vector L;
      extern color Cl;
      if(L!=vector(0)){
      vector Ln = normalize(L);
      float dist = spherehit(radius,center,Q,Ln);

      float i,cur_stepsize;
      float num_of_steps = ceil(dist/step);

      float Last_step = dist - (num_of_steps - 1) * step;
      for(i=1;i<=num_of_steps;i+=1){

      if(i!=num_of_steps)
      cur_stepsize = step;
      else
      cur_stepsize = Last_step;

      point Psamp = Q + i*cur_stepsize*Ln;

      /*calculate volume density*/
      point pp = transform ("world",Psamp);
      float density = get_density (pp,cur_stepsize,radius*2,freq,octaves,lacunarity, gain);

      /*calculate volume self-shadow*/
      shd+=cur_stepsize*density*scale;
      if(shd>1){

      shd = 1;
      i = num_of_steps+1;

      }
      }
      }
      C+=mix(Cl,shadowcolor,shd);

      }
      return C;
      }


      extern point P;
      extern normal N;
      extern vector I;

      normal Nn = normalize(N);
      vector V = normalize (I);
      float dot = V.(-Nn);
      /*center of the sphere*/
      point origin = P - Nn*radius;

      /*calculate ray march length*/
      float volume_distance = dot*2*radius;

      float stepsize = max(0.005,step);

      point Psamp;
      float opacity = 0;
      color c = 0;
      float light_intensity=1;
      color light_color;

      float start = step*(random()-0.5);
      float num_of_steps,Last_stepsize,cur_stepsize;

      if(N.I<0) {

      num_of_steps = ceil(volume_distance/stepsize);

      Last_stepsize = volume_distance - (num_of_steps - 1) * stepsize;

      float i;
      for (i = 1; i <=num_of_steps; i+= 1)
      {
      if(i!=num_of_steps)
      cur_stepsize = stepsize;
      else
      cur_stepsize = Last_stepsize;
      Psamp = P + i*cur_stepsize*V;

      /*calculate volume density*/
      point pp = transform ("world",Psamp);
      float density = get_density (pp,stepsize,radius*2,freq,octaves,lacunarity,gain );
      density*= abs(pow(dot,3.91));
      /*calculate light intensity*/
      light_color = get_lightcolor(Psamp,origin,stepsize,freq,radius,o ctaves,lacunarity,gain,Kshd,shadowcolor);



      /*composite sample point*/
      opacity+= cur_stepsize*density*K;
      c+= cur_stepsize*K*density*(light_color*cloudcolor+glo wcolor);

      if(opacity>1){

      opacity = 1;
      i = num_of_steps+1;

      }


      }



      }





      OI = opacity;
      CI = c;

      }
      }
      }







      }
      }


    9. titus's Avatar

      Mexico

      titus is on a distinguished road

      Join Date:

      Jan 2002

      Posts:

      1,651

      Rep Power:

      14

      June 17, 2003

      # 9
      Have you seen the deep shadow map technique described by Mach Kobayashi? You can find it here:

      This avoid the need of a ray marching shader with high rendering times. He used this shader to simulate smoke at Final Fantasy.

      Good to find you here posting your work.

    10. June 18, 2003

      # 10
      Thanks, I will check the document and try to use deep shadow instead of ray-marching to get self-shadowing.

      But I found that is an error in the spherehit block, the correct one is:


      float spherehit(float radius;point center,Q; vector V){
      vector qtoc = center - Q;
      float toc = length(qtoc);
      float dist = mindist( center, Q, Q+V);
      float mid = sqrt(radius*radius - dist*dist);
      float way = sqrt(toc*toc - dist*dist);
      /*Calculate sphere ray hit length*/
      float hit;
      if(V.qtoc> 0)
      hit = mid + way;
      else
      hit = mid - way;
      return max(hit,1.0e-6);
      }

    11. June 18, 2003

      # 11
      This is another applycation of the ray march approach. Depth map based translucence.

        Attached Thumbnails:

        Click image for larger version

Name:	tans.jpg
Views:	37
Size:	16.4 KB
ID:	10038  

    12. June 18, 2003

      # 12
      I followed the SRT2002 about shadow buffer by Mr. Hery from ILM.

        Attached Thumbnails:

        Click image for larger version

Name:	tans3.jpg
Views:	29
Size:	16.0 KB
ID:	10039  

    13. June 18, 2003

      # 13
      I modified the code of zjibi to build a simple ray march and at every sample point calculate the diffuse scattering of a fake light.

        Attached Thumbnails:

        Click image for larger version

Name:	tans2.jpg
Views:	35
Size:	17.2 KB
ID:	10040  

    14. June 18, 2003

      # 14
      It is good to render a translucence pass for final composition.

        Attached Thumbnails:

        Click image for larger version

Name:	tans1.jpg
Views:	33
Size:	17.4 KB
ID:	10041  

    15. June 19, 2003

      # 15
      With very low absorbing coefficient.

        Attached Thumbnails:

        Click image for larger version

Name:	trans_low.jpg
Views:	46
Size:	14.0 KB
ID:	10042  

    16. June 19, 2003

      # 16

        Attached Thumbnails:

        Click image for larger version

Name:	test1.jpg
Views:	39
Size:	27.1 KB
ID:	10043  

    17. June 19, 2003

      # 17

    18. June 19, 2003

      # 18

    19. June 19, 2003

      # 19

    20. June 22, 2003

      # 20
      Very good job !
      Im going to try your translucence shader for compositing.
      Thx zj !

      NoRB

    + Reply to Thread
    Page 1 of 6 1 2 3 4 ... LastLast

    Similar Threads

    1. Replies: 7
      Last Post: 02-22-10, 01:36 PM
    2. how might one import images into Maya
      By JimmyD in forum 3D Artwork
      Replies: 3
      Last Post: 10-10-06, 10:34 AM
    3. some images
      By markeduardo in forum 2D Artwork
      Replies: 7
      Last Post: 08-10-05, 01:24 AM
    4. Nice site 3d images!
      By Kowaro in forum Temas Generales
      Replies: 10
      Last Post: 07-12-05, 02:36 AM
    5. New Images in the LW Gallery
      By Proton in forum Lightwave 3D
      Replies: 1
      Last Post: 11-14-02, 01:44 AM

    Posting Permissions

    • You may not post new threads
    • You may not post replies
    • You may not post attachments
    • You may not edit your posts
    Adversitment