Subversion Repositories gelsvn

Rev

Rev 607 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 607 Rev 614
Line 534... Line 534...
534
    
534
    
535
    
535
    
536
    LineFieldRenderer::LineFieldRenderer(const Manifold& m, bool smooth, VertexAttributeVector<Vec3d>& lines, float _r): 
536
    LineFieldRenderer::LineFieldRenderer(const Manifold& m, bool smooth, VertexAttributeVector<Vec3d>& lines, float _r): 
537
    SimpleShaderRenderer(vss,fss), r(_r)
537
    SimpleShaderRenderer(vss,fss), r(_r)
538
    {
538
    {
539
        float noise_scale = 30.0f/r;
539
        float noise_scale = 5.0f/r;
540
        float line_scale = 0.05f/r;
540
        float line_scale = 0.02f/r;
541
        float noise_amplitude = 0.1f;
-
 
542
        
541
        
543
        GLint old_prog;
542
        GLint old_prog;
544
        glGetIntegerv(GL_CURRENT_PROGRAM, &old_prog);
543
        glGetIntegerv(GL_CURRENT_PROGRAM, &old_prog);
545
        glUseProgram(prog);	
544
        glUseProgram(prog);	
546
        glUniform1fARB(glGetUniformLocationARB(prog, "scale_line"),line_scale);
545
        glUniform1fARB(glGetUniformLocationARB(prog, "scale_line"),line_scale);
547
        glUniform1fARB(glGetUniformLocationARB(prog, "noise_scale"),noise_scale);
546
        glUniform1fARB(glGetUniformLocationARB(prog, "noise_scale"),noise_scale);
548
        glUniform1fARB(glGetUniformLocationARB(prog, "noise_amplitude"),noise_amplitude);	
-
 
549
        glUniform1iARB(glGetUniformLocationARB(prog, "noise_tex"),0);
547
        glUniform1iARB(glGetUniformLocationARB(prog, "noise_tex"),0);
550
        GLuint direction = glGetAttribLocation(prog, "direction");	
548
        GLuint direction = glGetAttribLocation(prog, "direction");	
551
        glNewList(display_list,GL_COMPILE);
549
        glNewList(display_list,GL_COMPILE);
552
        for(FaceIDIterator f = m.faces_begin(); f != m.faces_end(); ++f){
550
        for(FaceIDIterator f = m.faces_begin(); f != m.faces_end(); ++f){
553
            if(!smooth) 
551
            if(!smooth) 
Line 602... Line 600...
602
    "}\n";
600
    "}\n";
603
    
601
    
604
    const string LineFieldRenderer::fss =
602
    const string LineFieldRenderer::fss =
605
    "uniform sampler3D noise_tex;\n"
603
    "uniform sampler3D noise_tex;\n"
606
    "uniform float scale_line;\n"
604
    "uniform float scale_line;\n"
607
    "uniform float noise_amplitude;\n"
-
 
608
    "uniform float noise_scale;\n"
605
    "uniform float noise_scale;\n"
609
    "varying vec3 _n;\n"
606
    "varying vec3 _n;\n"
610
    "varying vec3 dir_obj;\n"
607
    "varying vec3 dir_obj;\n"
611
    "varying vec3 v_obj;\n"
608
    "varying vec3 v_obj;\n"
612
    "\n"
609
    "\n"