[Paraview] PointSprite with Recent Intel HD Graphics

Bruce Jones bruce.david.jones at gmail.com
Mon Feb 10 14:39:41 EST 2014


I'll have a look at building it my end then.

Cheers,
Bruce


On Mon, Feb 10, 2014 at 2:38 PM, Aashish Chaudhary <
aashish.chaudhary at kitware.com> wrote:

> Thanks for the update. ParaView and VTK converts those files into
> compilation unit and that's why you don't have it. I guess in
> order to debug this, you would have to build the ParaView. We cannot
> reproduce the issue on NVIDIA cards (GLSL 420 as well).
>
> - Aashish
>
>
>
> On Mon, Feb 10, 2014 at 1:37 PM, Bruce Jones <bruce.david.jones at gmail.com>wrote:
>
>> Hey Aashish,
>>
>> There are no *.glsl files in my paraview folder...
>>
>> Cheers,
>> Bruce
>>
>>
>> On Mon, Feb 10, 2014 at 12:58 PM, Aashish Chaudhary <
>> aashish.chaudhary at kitware.com> wrote:
>>
>>> John,
>>>
>>> Having another shader active should not be a problem. Since for shader
>>> we should be calling Use() before we start using it. My suspect is the
>>> shader version because of the various warning.
>>>
>>> @Bruce, don't compile again. Just look for shader files *.glsl (for eg.
>>> Texture_vs.glsl)  and add version info on the top (first line). See if that
>>> gets into effect.
>>>
>>> - Aashish
>>>
>>>
>>>
>>> On Mon, Feb 10, 2014 at 12:53 PM, Bruce Jones <
>>> bruce.david.jones at gmail.com> wrote:
>>>
>>>> Hey Aashish,
>>>>
>>>> I am using the Paraview binaries, and havent compiled paraview on
>>>> windows before. So this may take me a little while to set up, will get back
>>>> to you when I've figured it out. I'm happy to run anything you build your
>>>> end if that works.
>>>>
>>>> Thanks for the suggestion John. I get the same errors with depth
>>>> peeling deactivated. All the settings I am using are default, other than
>>>> the pointsprite plugin.
>>>>
>>>> Cheers,
>>>> Bruce
>>>>
>>>>
>>>> On Mon, Feb 10, 2014 at 12:47 PM, Biddiscombe, John A. <
>>>> biddisco at cscs.ch> wrote:
>>>>
>>>>> NB. Before testing lots of other stuff ... Make sure you disable depth
>>>>> peeling the main paraview options. The point sprite shader stuff will never
>>>>> work if there's another shader active.
>>>>>
>>>>> From: Aashish Chaudhary <aashish.chaudhary at kitware.com<mailto:
>>>>> aashish.chaudhary at kitware.com>>
>>>>> Date: Monday 10 February 2014 18:45
>>>>> To: Bruce Jones <bruce.david.jones at gmail.com<mailto:
>>>>> bruce.david.jones at gmail.com>>
>>>>> Cc: "paraview at paraview.org<mailto:paraview at paraview.org>" <
>>>>> paraview at paraview.org<mailto:paraview at paraview.org>>
>>>>> Subject: Re: [Paraview] PointSprite with Recent Intel HD Graphics
>>>>>
>>>>> Sorry, I hit send by mistake,
>>>>>
>>>>> In this directory,
>>>>>
>>>>> PARAVIEW_SRC/Plugins/PointSprite/Rendering/Resources/Shaders
>>>>>
>>>>> Can you add line below at the beginning of all of the shaders.  You
>>>>> may have to compile ParaView (or plugin again).  This may not fix the
>>>>> problem but it would be great if you can provide some
>>>>> feedback after this.
>>>>>
>>>>> - Aashish
>>>>>
>>>>>
>>>>>  #version 150
>>>>>
>>>>>
>>>>>
>>>>> On Mon, Feb 10, 2014 at 12:43 PM, Aashish Chaudhary <
>>>>> aashish.chaudhary at kitware.com<mailto:aashish.chaudhary at kitware.com>>
>>>>> wrote:
>>>>> Bruce,
>>>>>
>>>>> In the
>>>>>
>>>>>
>>>>>
>>>>> On Mon, Feb 10, 2014 at 12:08 PM, Aashish Chaudhary <
>>>>> aashish.chaudhary at kitware.com<mailto:aashish.chaudhary at kitware.com>>
>>>>> wrote:
>>>>> This is very helpful. I am speculating that it could be related to the
>>>>> default shader version on your system (yours is shader model 5 I believe).
>>>>>
>>>>> Let me come up with a quick fix (unless somone else beats me to it)
>>>>> which you can try. I will send that in a separate email.
>>>>>
>>>>> - Aashish
>>>>>
>>>>>
>>>>>
>>>>> On Mon, Feb 10, 2014 at 11:57 AM, Bruce Jones <
>>>>> bruce.david.jones at gmail.com<mailto:bruce.david.jones at gmail.com>>
>>>>> wrote:
>>>>> Hi Aashish,
>>>>>
>>>>> Thanks for getting back to me, I'll have a look at the breakpoint this
>>>>> afternoon. In the mean time, the full error logs are below, which appear to
>>>>> show the shader source for the failed shader.
>>>>>
>>>>> Using PointSprite with Sphere(Texture) and a constant radius works
>>>>> fine.
>>>>>
>>>>> Using PointSprite with Sphere(Texture) and a variable radius fails
>>>>> with the following message,
>>>>>
>>>>>
>>>>> ERROR: In
>>>>> C:\DBD\pvs-x64\paraview\src\paraview\VTK\Rendering\OpenGL\vtkShaderProgram2.cxx,
>>>>> line 530
>>>>>
>>>>> vtkShaderProgram2 (0000000012D40520): the shader program failed to
>>>>> link. Its log is:
>>>>>
>>>>> the shaders are:
>>>>>
>>>>>
>>>>>
>>>>> ERROR: In
>>>>> C:\DBD\pvs-x64\paraview\src\paraview\VTK\Rendering\OpenGL\vtkShaderProgram2.cxx,
>>>>> line 540
>>>>>
>>>>> vtkShaderProgram2 (0000000012D40520): shader #0/3 (vertex shader) log
>>>>> is:
>>>>>
>>>>>
>>>>> . Its source code is:
>>>>>
>>>>>
>>>>> /*=========================================================================
>>>>>
>>>>>
>>>>> Program: Visualization Toolkit
>>>>>
>>>>> Module: AttributeRadiusHelper.glsl
>>>>>
>>>>>
>>>>> Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
>>>>>
>>>>> All rights reserved.
>>>>>
>>>>> See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
>>>>>
>>>>>
>>>>> This software is distributed WITHOUT ANY WARRANTY; without even
>>>>>
>>>>> the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
>>>>>
>>>>> PURPOSE. See the above copyright notice for more information.
>>>>>
>>>>>
>>>>>
>>>>> =========================================================================*/
>>>>>
>>>>>
>>>>> // .NAME AttributeRadiusHelper.glsl
>>>>>
>>>>> // .SECTION Thanks
>>>>>
>>>>> // <verbatim>
>>>>>
>>>>> //
>>>>>
>>>>> // This file is part of the PointSprites plugin developed and
>>>>> contributed by
>>>>>
>>>>> //
>>>>>
>>>>> // Copyright (c) CSCS - Swiss National Supercomputing Centre
>>>>>
>>>>> // EDF - Electricite de France
>>>>>
>>>>> //
>>>>>
>>>>> // John Biddiscombe, Ugo Varetto (CSCS)
>>>>>
>>>>> // Stephane Ploix (EDF)
>>>>>
>>>>> //
>>>>>
>>>>> // </verbatim>
>>>>>
>>>>>
>>>>> uniform vec2 RadiusSpan;
>>>>>
>>>>> attribute float Radius;
>>>>>
>>>>>
>>>>> float GetRadius()
>>>>>
>>>>> {
>>>>>
>>>>> return RadiusSpan.x + Radius*RadiusSpan.y;
>>>>>
>>>>> }
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>> ERROR: In
>>>>> C:\DBD\pvs-x64\paraview\src\paraview\VTK\Rendering\OpenGL\vtkShaderProgram2.cxx,
>>>>> line 540
>>>>>
>>>>> vtkShaderProgram2 (0000000012D40520): shader #1/3 (vertex shader) log
>>>>> is:
>>>>>
>>>>>
>>>>> . Its source code is:
>>>>>
>>>>>
>>>>> /*=========================================================================
>>>>>
>>>>>
>>>>> Program: Visualization Toolkit
>>>>>
>>>>> Module: Texture_vs.glsl
>>>>>
>>>>>
>>>>> Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
>>>>>
>>>>> All rights reserved.
>>>>>
>>>>> See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
>>>>>
>>>>>
>>>>> This software is distributed WITHOUT ANY WARRANTY; without even
>>>>>
>>>>> the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
>>>>>
>>>>> PURPOSE. See the above copyright notice for more information.
>>>>>
>>>>>
>>>>>
>>>>> =========================================================================*/
>>>>>
>>>>>
>>>>> // .NAME Texture_vs.glsl
>>>>>
>>>>> // .SECTION Thanks
>>>>>
>>>>> // <verbatim>
>>>>>
>>>>> //
>>>>>
>>>>> // This file is part of the PointSprites plugin developed and
>>>>> contributed by
>>>>>
>>>>> //
>>>>>
>>>>> // Copyright (c) CSCS - Swiss National Supercomputing Centre
>>>>>
>>>>> // EDF - Electricite de France
>>>>>
>>>>> //
>>>>>
>>>>> // John Biddiscombe, Ugo Varetto (CSCS)
>>>>>
>>>>> // Stephane Ploix (EDF)
>>>>>
>>>>> //
>>>>>
>>>>> // </verbatim>
>>>>>
>>>>>
>>>>> uniform float MaxPixelSize;
>>>>>
>>>>> uniform vec2 viewport;
>>>>>
>>>>>
>>>>> float GetRadius();
>>>>>
>>>>>
>>>>> void propFuncVS()
>>>>>
>>>>> {
>>>>>
>>>>> float radius = GetRadius();
>>>>>
>>>>>
>>>>> gl_ClipVertex = gl_ModelViewMatrix * gl_Vertex;
>>>>>
>>>>> gl_Position = gl_ProjectionMatrix * gl_ModelViewMatrix * gl_Vertex;
>>>>>
>>>>> //
>>>>>
>>>>> // Convert position to window coordinates
>>>>>
>>>>> //
>>>>>
>>>>>
>>>>> //
>>>>>
>>>>> // Convert Radius to window coordinates
>>>>>
>>>>> // radius/w is homogenous clip coord
>>>>>
>>>>> //
>>>>>
>>>>> float pixelSize = (radius/gl_Position.w)*(4.0*viewport.y);
>>>>>
>>>>>
>>>>> // Clamp radius to prevent overloading if bad scalars were passed in
>>>>>
>>>>> if (pixelSize>MaxPixelSize)
>>>>>
>>>>> pixelSize = MaxPixelSize;
>>>>>
>>>>>
>>>>> gl_PointSize = pixelSize;
>>>>>
>>>>> gl_FrontColor = gl_Color;
>>>>>
>>>>> }
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>> ERROR: In
>>>>> C:\DBD\pvs-x64\paraview\src\paraview\VTK\Rendering\OpenGL\vtkShaderProgram2.cxx,
>>>>> line 540
>>>>>
>>>>> vtkShaderProgram2 (0000000012D40520): shader #2/3 (vertex shader) log
>>>>> is:
>>>>>
>>>>>
>>>>> . Its source code is:
>>>>>
>>>>> //
>>>>> ============================================================================
>>>>>
>>>>> //
>>>>>
>>>>> // Program: Visualization Toolkit
>>>>>
>>>>> // Module: vtkOpenGLPropertyDefaultMain_vs.glsl
>>>>>
>>>>> //
>>>>>
>>>>> // Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
>>>>>
>>>>> // All rights reserved.
>>>>>
>>>>> // See Copyright.txt or http://www.kitware.com/Copyright.htm for
>>>>> details.
>>>>>
>>>>> //
>>>>>
>>>>> // This software is distributed WITHOUT ANY WARRANTY; without even
>>>>>
>>>>> // the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
>>>>>
>>>>> // PURPOSE. See the above copyright notice for more information.
>>>>>
>>>>> //
>>>>>
>>>>> //
>>>>> ============================================================================
>>>>>
>>>>>
>>>>> // This is the default vertex shader with the main() function. It is
>>>>> used when
>>>>>
>>>>> // no main() is provided at the renderer level and some vertex shader
>>>>> is
>>>>>
>>>>> // defined by the user on a property.
>>>>>
>>>>>
>>>>> #version 110
>>>>>
>>>>>
>>>>> void propFuncVS();
>>>>>
>>>>>
>>>>> void main()
>>>>>
>>>>> {
>>>>>
>>>>> propFuncVS();
>>>>>
>>>>> }
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>> ERROR: In
>>>>> C:\DBD\pvs-x64\paraview\src\paraview\VTK\Rendering\OpenGL\vtkOpenGLProperty.cxx,
>>>>> line 415
>>>>>
>>>>> vtkPointSpriteProperty (000000001118DD20): Couldn't build the shader
>>>>> program. At this point , it can be an error in a shader or a driver bug.
>>>>>
>>>>>
>>>>>
>>>>> ERROR: In
>>>>> C:\DBD\pvs-x64\paraview\src\paraview\VTK\Rendering\OpenGL\vtkShaderProgram2.cxx,
>>>>> line 530
>>>>>
>>>>> vtkShaderProgram2 (0000000012D40520): the shader program failed to
>>>>> link. Its log is:
>>>>>
>>>>> the shaders are:
>>>>>
>>>>>
>>>>>
>>>>> ERROR: In
>>>>> C:\DBD\pvs-x64\paraview\src\paraview\VTK\Rendering\OpenGL\vtkShaderProgram2.cxx,
>>>>> line 540
>>>>>
>>>>> vtkShaderProgram2 (0000000012D40520): shader #0/3 (vertex shader) log
>>>>> is:
>>>>>
>>>>>
>>>>> . Its source code is:
>>>>>
>>>>>
>>>>> /*=========================================================================
>>>>>
>>>>>
>>>>> Program: Visualization Toolkit
>>>>>
>>>>> Module: AttributeRadiusHelper.glsl
>>>>>
>>>>>
>>>>> Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
>>>>>
>>>>> All rights reserved.
>>>>>
>>>>> See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
>>>>>
>>>>>
>>>>> This software is distributed WITHOUT ANY WARRANTY; without even
>>>>>
>>>>> the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
>>>>>
>>>>> PURPOSE. See the above copyright notice for more information.
>>>>>
>>>>>
>>>>>
>>>>> =========================================================================*/
>>>>>
>>>>>
>>>>> // .NAME AttributeRadiusHelper.glsl
>>>>>
>>>>> // .SECTION Thanks
>>>>>
>>>>> // <verbatim>
>>>>>
>>>>> //
>>>>>
>>>>> // This file is part of the PointSprites plugin developed and
>>>>> contributed by
>>>>>
>>>>> //
>>>>>
>>>>> // Copyright (c) CSCS - Swiss National Supercomputing Centre
>>>>>
>>>>> // EDF - Electricite de France
>>>>>
>>>>> //
>>>>>
>>>>> // John Biddiscombe, Ugo Varetto (CSCS)
>>>>>
>>>>> // Stephane Ploix (EDF)
>>>>>
>>>>> //
>>>>>
>>>>> // </verbatim>
>>>>>
>>>>>
>>>>> uniform vec2 RadiusSpan;
>>>>>
>>>>> attribute float Radius;
>>>>>
>>>>>
>>>>> float GetRadius()
>>>>>
>>>>> {
>>>>>
>>>>> return RadiusSpan.x + Radius*RadiusSpan.y;
>>>>>
>>>>> }
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>> ERROR: In
>>>>> C:\DBD\pvs-x64\paraview\src\paraview\VTK\Rendering\OpenGL\vtkShaderProgram2.cxx,
>>>>> line 540
>>>>>
>>>>> vtkShaderProgram2 (0000000012D40520): shader #1/3 (vertex shader) log
>>>>> is:
>>>>>
>>>>>
>>>>> . Its source code is:
>>>>>
>>>>>
>>>>> /*=========================================================================
>>>>>
>>>>>
>>>>> Program: Visualization Toolkit
>>>>>
>>>>> Module: Texture_vs.glsl
>>>>>
>>>>>
>>>>> Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
>>>>>
>>>>> All rights reserved.
>>>>>
>>>>> See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
>>>>>
>>>>>
>>>>> This software is distributed WITHOUT ANY WARRANTY; without even
>>>>>
>>>>> the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
>>>>>
>>>>> PURPOSE. See the above copyright notice for more information.
>>>>>
>>>>>
>>>>>
>>>>> =========================================================================*/
>>>>>
>>>>>
>>>>> // .NAME Texture_vs.glsl
>>>>>
>>>>> // .SECTION Thanks
>>>>>
>>>>> // <verbatim>
>>>>>
>>>>> //
>>>>>
>>>>> // This file is part of the PointSprites plugin developed and
>>>>> contributed by
>>>>>
>>>>> //
>>>>>
>>>>> // Copyright (c) CSCS - Swiss National Supercomputing Centre
>>>>>
>>>>> // EDF - Electricite de France
>>>>>
>>>>> //
>>>>>
>>>>> // John Biddiscombe, Ugo Varetto (CSCS)
>>>>>
>>>>> // Stephane Ploix (EDF)
>>>>>
>>>>> //
>>>>>
>>>>> // </verbatim>
>>>>>
>>>>>
>>>>> uniform float MaxPixelSize;
>>>>>
>>>>> uniform vec2 viewport;
>>>>>
>>>>>
>>>>> float GetRadius();
>>>>>
>>>>>
>>>>> void propFuncVS()
>>>>>
>>>>> {
>>>>>
>>>>> float radius = GetRadius();
>>>>>
>>>>>
>>>>> gl_ClipVertex = gl_ModelViewMatrix * gl_Vertex;
>>>>>
>>>>> gl_Position = gl_ProjectionMatrix * gl_ModelViewMatrix * gl_Vertex;
>>>>>
>>>>> //
>>>>>
>>>>> // Convert position to window coordinates
>>>>>
>>>>> //
>>>>>
>>>>>
>>>>> //
>>>>>
>>>>> // Convert Radius to window coordinates
>>>>>
>>>>> // radius/w is homogenous clip coord
>>>>>
>>>>> //
>>>>>
>>>>> float pixelSize = (radius/gl_Position.w)*(4.0*viewport.y);
>>>>>
>>>>>
>>>>> // Clamp radius to prevent overloading if bad scalars were passed in
>>>>>
>>>>> if (pixelSize>MaxPixelSize)
>>>>>
>>>>> pixelSize = MaxPixelSize;
>>>>>
>>>>>
>>>>> gl_PointSize = pixelSize;
>>>>>
>>>>> gl_FrontColor = gl_Color;
>>>>>
>>>>> }
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>> ERROR: In
>>>>> C:\DBD\pvs-x64\paraview\src\paraview\VTK\Rendering\OpenGL\vtkShaderProgram2.cxx,
>>>>> line 540
>>>>>
>>>>> vtkShaderProgram2 (0000000012D40520): shader #2/3 (vertex shader) log
>>>>> is:
>>>>>
>>>>>
>>>>> . Its source code is:
>>>>>
>>>>> //
>>>>> ============================================================================
>>>>>
>>>>> //
>>>>>
>>>>> // Program: Visualization Toolkit
>>>>>
>>>>> // Module: vtkOpenGLPropertyDefaultMain_vs.glsl
>>>>>
>>>>> //
>>>>>
>>>>> // Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
>>>>>
>>>>> // All rights reserved.
>>>>>
>>>>> // See Copyright.txt or http://www.kitware.com/Copyright.htm for
>>>>> details.
>>>>>
>>>>> //
>>>>>
>>>>> // This software is distributed WITHOUT ANY WARRANTY; without even
>>>>>
>>>>> // the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
>>>>>
>>>>> // PURPOSE. See the above copyright notice for more information.
>>>>>
>>>>> //
>>>>>
>>>>> //
>>>>> ============================================================================
>>>>>
>>>>>
>>>>> // This is the default vertex shader with the main() function. It is
>>>>> used when
>>>>>
>>>>> // no main() is provided at the renderer level and some vertex shader
>>>>> is
>>>>>
>>>>> // defined by the user on a property.
>>>>>
>>>>>
>>>>> #version 110
>>>>>
>>>>>
>>>>> void propFuncVS();
>>>>>
>>>>>
>>>>> void main()
>>>>>
>>>>> {
>>>>>
>>>>> propFuncVS();
>>>>>
>>>>> }
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>> ERROR: In
>>>>> C:\DBD\pvs-x64\paraview\src\paraview\VTK\Rendering\OpenGL\vtkOpenGLProperty.cxx,
>>>>> line 415
>>>>>
>>>>> vtkPointSpriteProperty (000000001118DD20): Couldn't build the shader
>>>>> program. At this point , it can be an error in a shader or a driver bug.
>>>>>
>>>>>
>>>>>
>>>>> ERROR: In
>>>>> C:\DBD\pvs-x64\paraview\src\paraview\VTK\Rendering\OpenGL\vtkShaderProgram2.cxx,
>>>>> line 1084
>>>>>
>>>>> vtkShaderProgram2 (0000000012D40520): glGetAttribLocation 1 OpenGL
>>>>> errors detected
>>>>>
>>>>> 0 : (1281) Invalid value
>>>>>
>>>>>
>>>>>
>>>>>
>>>>> ERROR: In
>>>>> C:\DBD\pvs-x64\paraview\src\paraview\VTK\Rendering\OpenGL\vtkShaderProgram2.cxx,
>>>>> line 1084
>>>>>
>>>>> vtkShaderProgram2 (0000000012D40520): glGetAttribLocation 1 OpenGL
>>>>> errors detected
>>>>>
>>>>> 0 : (1281) Invalid value
>>>>>
>>>>>
>>>>>
>>>>>
>>>>> ERROR: In
>>>>> C:\DBD\pvs-x64\paraview\src\paraview\VTK\Rendering\OpenGL\vtkShaderProgram2.cxx,
>>>>> line 1084
>>>>>
>>>>> vtkShaderProgram2 (0000000012D40520): glGetAttribLocation 1 OpenGL
>>>>> errors detected
>>>>>
>>>>> 0 : (1281) Invalid value
>>>>>
>>>>>
>>>>> Using PointSprite with Sphere and a constant radius fails with the
>>>>> following message,
>>>>>
>>>>>
>>>>> ERROR: In
>>>>> C:\DBD\pvs-x64\paraview\src\paraview\VTK\Rendering\OpenGL\vtkShaderProgram2.cxx,
>>>>> line 481
>>>>>
>>>>> vtkShaderProgram2 (0000000012D40520): a shader failed to compile. Its
>>>>> log is:
>>>>>
>>>>> WARNING: 0:89: 'assigning' : implict conversion between types allowed
>>>>> from GLSL 1.20
>>>>>
>>>>> WARNING: 0:143: 'assigning' : implict conversion between types allowed
>>>>> from GLSL 1.20
>>>>>
>>>>> WARNING: 0:159: 'assigning' : implict conversion between types allowed
>>>>> from GLSL 1.20
>>>>>
>>>>> WARNING: 0:196: 'assigning' : implict conversion between types allowed
>>>>> from GLSL 1.20
>>>>>
>>>>> WARNING: 0:207: 'assign' : implicit type conversion allowed from GLSL
>>>>> 1.20
>>>>>
>>>>> ERROR: 0:207: '=' : cannot convert from 'const int' to '3-component
>>>>> vector of float'
>>>>>
>>>>> ERROR: 0:216: 'assign' : cannot convert from '4-component vector of
>>>>> float' to '3-component vector of float'
>>>>>
>>>>> ERROR: 0:217: 'N' : undeclared identifier
>>>>>
>>>>> ERROR: 0:217: 'assign' : cannot convert from '3-component vector of
>>>>> float' to 'float'
>>>>>
>>>>> ERROR: 0:218: 'dot' : no matching overloaded function found (using
>>>>> implicit conversion)
>>>>>
>>>>> ERROR: 0:218: 'assign' : l-value required "d" (can't modify a varying)
>>>>>
>>>>> ERROR: 0:219: 'viewdir' : undeclared identifier
>>>>>
>>>>> ERROR: 0:219: 'assign' : cannot convert from '3-component vector of
>>>>> float' to 'float'
>>>>>
>>>>> ERROR: 0:220: 'vl' : undeclared identifier
>>>>>
>>>>> ERROR: 0:220: 'reflect' : no matching overloaded function found (using
>>>>> implicit conversion)
>>>>>
>>>>> ERROR: 0:221: 's' : undeclared identifier
>>>>>
>>>>> ERROR: 0:222: 'assign' : cannot convert from '4-component vector of
>>>>> float' to '3-component vector of float'
>>>>>
>>>>> WARNING: 0:251: 'assigning' : implict conversion between types allowed
>>>>> from GLSL 1.20
>>>>>
>>>>>
>>>>>
>>>>> . Its source code is:
>>>>>
>>>>>
>>>>> /*=========================================================================
>>>>>
>>>>>
>>>>> Program: Visualization Toolkit
>>>>>
>>>>> Module: Quadrics_fs.glsl
>>>>>
>>>>>
>>>>> Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
>>>>>
>>>>> All rights reserved.
>>>>>
>>>>> See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
>>>>>
>>>>>
>>>>> This software is distributed WITHOUT ANY WARRANTY; without even
>>>>>
>>>>> the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
>>>>>
>>>>> PURPOSE. See the above copyright notice for more information.
>>>>>
>>>>>
>>>>>
>>>>> =========================================================================*/
>>>>>
>>>>>
>>>>> // .NAME Quadrics_fs.glsl
>>>>>
>>>>> // .SECTION Thanks
>>>>>
>>>>> // <verbatim>
>>>>>
>>>>> //
>>>>>
>>>>> // This file is part of the PointSprites plugin developed and
>>>>> contributed by
>>>>>
>>>>> //
>>>>>
>>>>> // Copyright (c) CSCS - Swiss National Supercomputing Centre
>>>>>
>>>>> // EDF - Electricite de France
>>>>>
>>>>> //
>>>>>
>>>>> // John Biddiscombe, Ugo Varetto (CSCS)
>>>>>
>>>>> // Stephane Ploix (EDF)
>>>>>
>>>>> //
>>>>>
>>>>> // </verbatim>
>>>>>
>>>>>
>>>>> //
>>>>>
>>>>> // IN:
>>>>>
>>>>> // - vertex position
>>>>>
>>>>> // - point size
>>>>>
>>>>> // - ray origin
>>>>>
>>>>> // - perspective flag
>>>>>
>>>>> // - quadric equation coefficients
>>>>>
>>>>> // - color
>>>>>
>>>>> // - viewport (width and height only)
>>>>>
>>>>> // - min point size (pointThreshold)
>>>>>
>>>>> //
>>>>>
>>>>> // OUT:
>>>>>
>>>>> // - fragment color computed from point intersected by ray shot from
>>>>>
>>>>> // viewpoint through point computed from current fragment coordinate
>>>>>
>>>>> // - fragment depth computed by projecting the intersection point into
>>>>> screen
>>>>>
>>>>> // coordinates
>>>>>
>>>>>
>>>>>
>>>>> // OPTIMAL
>>>>>
>>>>> #define ELLIPSOID
>>>>>
>>>>> //#define CYLINDER
>>>>>
>>>>> //#define CONE
>>>>>
>>>>> //#define HYPERBOLOID1
>>>>>
>>>>> //#define HYPERBOLOID2
>>>>>
>>>>> //#define PARABOLOID
>>>>>
>>>>>
>>>>> // SUB OPTIMAL
>>>>>
>>>>> //#define HYPER_PARABOLOID
>>>>>
>>>>>
>>>>> uniform vec2 viewport; // only width and height passed, no origin
>>>>>
>>>>> uniform float pointSizeThreshold; // minimum point size
>>>>>
>>>>>
>>>>> varying vec4 color;
>>>>>
>>>>> varying float a;
>>>>>
>>>>> varying float b;
>>>>>
>>>>> varying float c;
>>>>>
>>>>> varying float d;
>>>>>
>>>>> varying float e;
>>>>>
>>>>> varying float f;
>>>>>
>>>>> varying float g;
>>>>>
>>>>> varying float h;
>>>>>
>>>>> varying float i;
>>>>>
>>>>> varying float j;
>>>>>
>>>>> varying float pointSize;
>>>>>
>>>>> varying float perspective;
>>>>>
>>>>>
>>>>> vec3 raydir; // ray direction in screen space
>>>>>
>>>>> vec3 rayorigin; // ray origin in screen space
>>>>>
>>>>>
>>>>> #ifndef ELLIPSOID
>>>>>
>>>>> varying mat4 Ti;
>>>>>
>>>>> #endif
>>>>>
>>>>>
>>>>> const float FLAT_SHADE_POINT_SIZE = 1.0; //if point size < 1 use flat
>>>>> shading
>>>>>
>>>>>
>>>>> const float FEPS = 0.0001;
>>>>>
>>>>>
>>>>> const float BOUND = 1.0 + FEPS;
>>>>>
>>>>>
>>>>> const vec3 MIN_BOUND = vec3(-BOUND);
>>>>>
>>>>>
>>>>> const vec3 MAX_BOUND = vec3(BOUND);
>>>>>
>>>>>
>>>>>
>>>>> //------------------------------------------------------------------------------
>>>>>
>>>>> // BOUNDS CHECK
>>>>>
>>>>> // in general it makes sense to check only along the z direction for:
>>>>>
>>>>> // - paraboloids
>>>>>
>>>>> // - hyperboloids of one sheet
>>>>>
>>>>> // - cylinders
>>>>>
>>>>> // - cones
>>>>>
>>>>> // and no checking at all is required for ellipsoids
>>>>>
>>>>> #ifndef ELLIPSOID
>>>>>
>>>>> bool InBounds( vec3 P )
>>>>>
>>>>> {
>>>>>
>>>>> vec4 v = Ti * gl_ModelViewMatrixInverse * vec4( P, 1. );
>>>>>
>>>>> #if defined( CYLINDER ) || defined( CONE ) || defined( HYPERBOLOID1 )
>>>>> || defined( PARABOLOID )
>>>>>
>>>>> return v.z >= -BOUND && v.z <= BOUND;
>>>>>
>>>>> #else
>>>>>
>>>>> return all( greaterThanEqual( v.xyz, MIN_BOUND ) ) &&
>>>>>
>>>>> all( lessThanEqual( v.xyz, MAX_BOUND ) );
>>>>>
>>>>> #endif
>>>>>
>>>>> }
>>>>>
>>>>> #endif
>>>>>
>>>>>
>>>>> //------------------------------------------------------------------------------
>>>>>
>>>>> // INTERSECTION
>>>>>
>>>>> struct I
>>>>>
>>>>> {
>>>>>
>>>>> vec3 P;
>>>>>
>>>>> vec3 N;
>>>>>
>>>>> float t;
>>>>>
>>>>> };
>>>>>
>>>>>
>>>>> // compute unit normal from gradient
>>>>>
>>>>> vec3 ComputeNormal(vec3 P)
>>>>>
>>>>> {
>>>>>
>>>>> return normalize(vec3(dot(vec4(a, d, e, 1.), vec4(P, g)), // should
>>>>> multiply by 2 for actual gradient
>>>>>
>>>>> dot(vec4(d, b, f, 1.), vec4(P, h)), // should multiply by 2 for actual
>>>>> gradient
>>>>>
>>>>> dot(vec4(e, f, c, 1.), vec4(P, i)) // should multiply by 2 for actual
>>>>> gradient
>>>>>
>>>>> ));
>>>>>
>>>>> }
>>>>>
>>>>>
>>>>> // compute ray quadric intersection; if no intersection occurs I.t is
>>>>> < 0
>>>>>
>>>>> // main axis length and orientation are used to clip the quadric; not
>>>>>
>>>>> // required for closed quadrics (ellipsoids)
>>>>>
>>>>> // | a d e g |
>>>>>
>>>>> // | d b f h |
>>>>>
>>>>> // | e f c i |
>>>>>
>>>>> // | g h i j |
>>>>>
>>>>> // ax^2 + by^2 + cz^2 + 2dxy +2exz + 2fyz + 2gx + 2hy + 2iz + j = 0
>>>>>
>>>>> /// @todo pass vec3(a, b, c), vec3( d, e, f ) and vec3( g, h, i )
>>>>> instead of single coefficients
>>>>>
>>>>> I ComputeRayQuadricIntersection()
>>>>>
>>>>> {
>>>>>
>>>>> I ip;
>>>>>
>>>>> ip.t = -1.0;
>>>>>
>>>>> vec3 P = rayorigin;
>>>>>
>>>>> vec3 D = raydir;
>>>>>
>>>>> float A = 0.0;
>>>>>
>>>>> float B = 0.0;
>>>>>
>>>>> float C = 0.0;
>>>>>
>>>>> if (bool(perspective))
>>>>>
>>>>> {
>>>>>
>>>>> A = dot(vec3(a, b, c), D * D) + 2. * dot(vec3(d, e, f), D.xxy * D.yzz);
>>>>>
>>>>> B = 2. * dot(vec3(g, h, i), D);
>>>>>
>>>>> C = j;
>>>>>
>>>>> }
>>>>>
>>>>> else
>>>>>
>>>>> {
>>>>>
>>>>> A = c;
>>>>>
>>>>> //B = -2. * dot( vec4( c, e, f, 1. ), vec4( P.zxy, 1. ) );
>>>>>
>>>>> B = -2. * dot(vec4(d, e, f, i), vec4(P.zxy, 1.));
>>>>>
>>>>> C = dot(vec3(a, b, c), P * P) + 2. * (dot(vec3(d, e, f), P.xxy * P.yzz)
>>>>>
>>>>> + dot(vec3(g, h, i), P)) + j;
>>>>>
>>>>> }
>>>>>
>>>>> float delta = B * B - 4. * A * C;
>>>>>
>>>>> if (delta < 0.0)
>>>>>
>>>>> return ip;
>>>>>
>>>>> float d = sqrt(delta);
>>>>>
>>>>> A = 1. / A;
>>>>>
>>>>> A *= 0.5;
>>>>>
>>>>> float t2 = A * (-B + d);
>>>>>
>>>>> float t1 = A * (-B - d);
>>>>>
>>>>> #ifdef ELLIPSOID
>>>>>
>>>>> ip.P = rayorigin + D * min(t1, t2);
>>>>>
>>>>> ip.N = ComputeNormal(ip.P);
>>>>>
>>>>> ip.t = 0.;
>>>>>
>>>>> #else
>>>>>
>>>>> vec3 P1 = rayorigin + D * min( t1, t2 );
>>>>>
>>>>> vec3 P2 = rayorigin + D * max( t1, t2 );
>>>>>
>>>>> if( InBounds( P1 ) )
>>>>>
>>>>> {
>>>>>
>>>>> ip.P = P1;
>>>>>
>>>>> ip.N = ComputeNormal( P1 );
>>>>>
>>>>> ip.t = 0.;
>>>>>
>>>>> }
>>>>>
>>>>> else if( InBounds( P2 ) )
>>>>>
>>>>> {
>>>>>
>>>>> ip.P = P2;
>>>>>
>>>>> ip.N = ComputeNormal( P2 );
>>>>>
>>>>> ip.t = 0.;
>>>>>
>>>>> }
>>>>>
>>>>> #endif
>>>>>
>>>>> return ip;
>>>>>
>>>>> }
>>>>>
>>>>>
>>>>>
>>>>> //------------------------------------------------------------------------------
>>>>>
>>>>> // LIGHTING, standard phong lighting model
>>>>>
>>>>> vec3 lightDir = normalize(vec3(0.1, 0.1, 1.));
>>>>>
>>>>> float kd = 1.0;
>>>>>
>>>>> float ka = 0.01;
>>>>>
>>>>> float ks = .5;
>>>>>
>>>>> float sh = 90.0;
>>>>>
>>>>> vec4 refcolor = vec4(1., 1., 1., 1.);
>>>>>
>>>>> vec4 ComputeColor(vec4 color, vec3 n, vec3 P)
>>>>>
>>>>> {
>>>>>
>>>>> if (pointSize < FLAT_SHADE_POINT_SIZE)
>>>>>
>>>>> return color;
>>>>>
>>>>>
>>>>> vec3 col = (0, 0, 0);
>>>>>
>>>>> vec3 N;
>>>>>
>>>>> float d;
>>>>>
>>>>> vec3 viewdir;
>>>>>
>>>>> float vl;
>>>>>
>>>>> float s;
>>>>>
>>>>>
>>>>> for (int li = 0; li < 4; li++)
>>>>>
>>>>> {
>>>>>
>>>>> lightDir = normalize(gl_LightSource[li].position);
>>>>>
>>>>> N = faceforward(-n, lightDir, n);
>>>>>
>>>>> d = dot(N, lightDir);
>>>>>
>>>>> viewdir = normalize(-P);
>>>>>
>>>>> vl = max(0., dot(reflect(-lightDir, N), viewdir));
>>>>>
>>>>> s = pow(vl, gl_FrontMaterial.shininess);
>>>>>
>>>>> col += gl_FrontMaterial.specular * s * gl_LightSource[li].specular.rgb
>>>>> + kd
>>>>>
>>>>> * d * color.rgb * gl_LightSource[li].diffuse.rgb + ka * color.rgb
>>>>>
>>>>> * gl_LightSource[li].ambient.rgb;
>>>>>
>>>>> }
>>>>>
>>>>>
>>>>> return vec4(col, color.a);
>>>>>
>>>>>
>>>>> }
>>>>>
>>>>>
>>>>>
>>>>> //------------------------------------------------------------------------------
>>>>>
>>>>> // MAIN
>>>>>
>>>>> void propFuncFS(void)
>>>>>
>>>>> {
>>>>>
>>>>> if (pointSize < pointSizeThreshold || color.a <= 0.0)
>>>>>
>>>>> discard;
>>>>>
>>>>> vec3 fc = gl_FragCoord.xyz;
>>>>>
>>>>> fc.xy /= viewport;
>>>>>
>>>>> fc *= 2.0;
>>>>>
>>>>> fc -= 1.0;
>>>>>
>>>>> vec4 p = gl_ProjectionMatrixInverse * vec4(fc, 1.);
>>>>>
>>>>> if (bool(perspective))
>>>>>
>>>>> {
>>>>>
>>>>> // in perspective mode, rayorigin is always at (0, 0, 0)
>>>>>
>>>>> rayorigin = vec3(0., 0., 0.);
>>>>>
>>>>> raydir = vec3(p) / p.w;
>>>>>
>>>>> }
>>>>>
>>>>> else
>>>>>
>>>>> {
>>>>>
>>>>> // in orthographic mode, raydir is always ( 0., 0., -1. );
>>>>>
>>>>> raydir = vec3(0., 0., -1.);
>>>>>
>>>>> rayorigin = vec3(p.x / p.w, p.y / p.w, 0.);
>>>>>
>>>>> }
>>>>>
>>>>> // compute intersection
>>>>>
>>>>> I i = ComputeRayQuadricIntersection();
>>>>>
>>>>> if (i.t < 0.0)
>>>>>
>>>>> discard;
>>>>>
>>>>> // compute color
>>>>>
>>>>> gl_FragColor = ComputeColor(color, i.N, i.P);
>>>>>
>>>>> // update depth by projecting point and updating depth coordinate
>>>>>
>>>>> // the transposed version of the projection matrix is used to
>>>>>
>>>>> // perform vector, matrix row product in one line:
>>>>>
>>>>> // M[2][*] x V = Vt x Mt[*][2] where:
>>>>>
>>>>> // % V is a column vector
>>>>>
>>>>> // % Vt is a row vector
>>>>>
>>>>> // % M is a square matrix
>>>>>
>>>>> // % Mt is the transpose of M
>>>>>
>>>>> float z = dot(vec4(i.P, 1.), gl_ProjectionMatrixTranspose[2]);
>>>>>
>>>>> float w = dot(vec4(i.P, 1.), gl_ProjectionMatrixTranspose[3]);
>>>>>
>>>>> gl_FragDepth = 0.5 * (z / w + 1.0);
>>>>>
>>>>> }
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>> ERROR: In
>>>>> C:\DBD\pvs-x64\paraview\src\paraview\VTK\Rendering\OpenGL\vtkOpenGLProperty.cxx,
>>>>> line 415
>>>>>
>>>>> vtkPointSpriteProperty (000000001118DD20): Couldn't build the shader
>>>>> program. At this point , it can be an error in a shader or a driver bug.
>>>>>
>>>>>
>>>>>
>>>>> ERROR: In
>>>>> C:\DBD\pvs-x64\paraview\src\paraview\VTK\Rendering\OpenGL\vtkShaderProgram2.cxx,
>>>>> line 481
>>>>>
>>>>> vtkShaderProgram2 (0000000012D40520): a shader failed to compile. Its
>>>>> log is:
>>>>>
>>>>> WARNING: 0:89: 'assigning' : implict conversion between types allowed
>>>>> from GLSL 1.20
>>>>>
>>>>> WARNING: 0:143: 'assigning' : implict conversion between types allowed
>>>>> from GLSL 1.20
>>>>>
>>>>> WARNING: 0:159: 'assigning' : implict conversion between types allowed
>>>>> from GLSL 1.20
>>>>>
>>>>> WARNING: 0:196: 'assigning' : implict conversion between types allowed
>>>>> from GLSL 1.20
>>>>>
>>>>> WARNING: 0:207: 'assign' : implicit type conversion allowed from GLSL
>>>>> 1.20
>>>>>
>>>>> ERROR: 0:207: '=' : cannot convert from 'const int' to '3-component
>>>>> vector of float'
>>>>>
>>>>> ERROR: 0:216: 'assign' : cannot convert from '4-component vector of
>>>>> float' to '3-component vector of float'
>>>>>
>>>>> ERROR: 0:217: 'N' : undeclared identifier
>>>>>
>>>>> ERROR: 0:217: 'assign' : cannot convert from '3-component vector of
>>>>> float' to 'float'
>>>>>
>>>>> ERROR: 0:218: 'dot' : no matching overloaded function found (using
>>>>> implicit conversion)
>>>>>
>>>>> ERROR: 0:218: 'assign' : l-value required "d" (can't modify a varying)
>>>>>
>>>>> ERROR: 0:219: 'viewdir' : undeclared identifier
>>>>>
>>>>> ERROR: 0:219: 'assign' : cannot convert from '3-component vector of
>>>>> float' to 'float'
>>>>>
>>>>> ERROR: 0:220: 'vl' : undeclared identifier
>>>>>
>>>>> ERROR: 0:220: 'reflect' : no matching overloaded function found (using
>>>>> implicit conversion)
>>>>>
>>>>> ERROR: 0:221: 's' : undeclared identifier
>>>>>
>>>>> ERROR: 0:222: 'assign' : cannot convert from '4-component vector of
>>>>> float' to '3-component vector of float'
>>>>>
>>>>> WARNING: 0:251: 'assigning' : implict conversion between types allowed
>>>>> from GLSL 1.20
>>>>>
>>>>>
>>>>>
>>>>> . Its source code is:
>>>>>
>>>>>
>>>>> /*=========================================================================
>>>>>
>>>>>
>>>>> Program: Visualization Toolkit
>>>>>
>>>>> Module: Quadrics_fs.glsl
>>>>>
>>>>>
>>>>> Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
>>>>>
>>>>> All rights reserved.
>>>>>
>>>>> See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
>>>>>
>>>>>
>>>>> This software is distributed WITHOUT ANY WARRANTY; without even
>>>>>
>>>>> the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
>>>>>
>>>>> PURPOSE. See the above copyright notice for more information.
>>>>>
>>>>>
>>>>>
>>>>> =========================================================================*/
>>>>>
>>>>>
>>>>> // .NAME Quadrics_fs.glsl
>>>>>
>>>>> // .SECTION Thanks
>>>>>
>>>>> // <verbatim>
>>>>>
>>>>> //
>>>>>
>>>>> // This file is part of the PointSprites plugin developed and
>>>>> contributed by
>>>>>
>>>>> //
>>>>>
>>>>> // Copyright (c) CSCS - Swiss National Supercomputing Centre
>>>>>
>>>>> // EDF - Electricite de France
>>>>>
>>>>> //
>>>>>
>>>>> // John Biddiscombe, Ugo Varetto (CSCS)
>>>>>
>>>>> // Stephane Ploix (EDF)
>>>>>
>>>>> //
>>>>>
>>>>> // </verbatim>
>>>>>
>>>>>
>>>>> //
>>>>>
>>>>> // IN:
>>>>>
>>>>> // - vertex position
>>>>>
>>>>> // - point size
>>>>>
>>>>> // - ray origin
>>>>>
>>>>> // - perspective flag
>>>>>
>>>>> // - quadric equation coefficients
>>>>>
>>>>> // - color
>>>>>
>>>>> // - viewport (width and height only)
>>>>>
>>>>> // - min point size (pointThreshold)
>>>>>
>>>>> //
>>>>>
>>>>> // OUT:
>>>>>
>>>>> // - fragment color computed from point intersected by ray shot from
>>>>>
>>>>> // viewpoint through point computed from current fragment coordinate
>>>>>
>>>>> // - fragment depth computed by projecting the intersection point into
>>>>> screen
>>>>>
>>>>> // coordinates
>>>>>
>>>>>
>>>>>
>>>>> // OPTIMAL
>>>>>
>>>>> #define ELLIPSOID
>>>>>
>>>>> //#define CYLINDER
>>>>>
>>>>> //#define CONE
>>>>>
>>>>> //#define HYPERBOLOID1
>>>>>
>>>>> //#define HYPERBOLOID2
>>>>>
>>>>> //#define PARABOLOID
>>>>>
>>>>>
>>>>> // SUB OPTIMAL
>>>>>
>>>>> //#define HYPER_PARABOLOID
>>>>>
>>>>>
>>>>> uniform vec2 viewport; // only width and height passed, no origin
>>>>>
>>>>> uniform float pointSizeThreshold; // minimum point size
>>>>>
>>>>>
>>>>> varying vec4 color;
>>>>>
>>>>> varying float a;
>>>>>
>>>>> varying float b;
>>>>>
>>>>> varying float c;
>>>>>
>>>>> varying float d;
>>>>>
>>>>> varying float e;
>>>>>
>>>>> varying float f;
>>>>>
>>>>> varying float g;
>>>>>
>>>>> varying float h;
>>>>>
>>>>> varying float i;
>>>>>
>>>>> varying float j;
>>>>>
>>>>> varying float pointSize;
>>>>>
>>>>> varying float perspective;
>>>>>
>>>>>
>>>>> vec3 raydir; // ray direction in screen space
>>>>>
>>>>> vec3 rayorigin; // ray origin in screen space
>>>>>
>>>>>
>>>>> #ifndef ELLIPSOID
>>>>>
>>>>> varying mat4 Ti;
>>>>>
>>>>> #endif
>>>>>
>>>>>
>>>>> const float FLAT_SHADE_POINT_SIZE = 1.0; //if point size < 1 use flat
>>>>> shading
>>>>>
>>>>>
>>>>> const float FEPS = 0.0001;
>>>>>
>>>>>
>>>>> const float BOUND = 1.0 + FEPS;
>>>>>
>>>>>
>>>>> const vec3 MIN_BOUND = vec3(-BOUND);
>>>>>
>>>>>
>>>>> const vec3 MAX_BOUND = vec3(BOUND);
>>>>>
>>>>>
>>>>>
>>>>> //------------------------------------------------------------------------------
>>>>>
>>>>> // BOUNDS CHECK
>>>>>
>>>>> // in general it makes sense to check only along the z direction for:
>>>>>
>>>>> // - paraboloids
>>>>>
>>>>> // - hyperboloids of one sheet
>>>>>
>>>>> // - cylinders
>>>>>
>>>>> // - cones
>>>>>
>>>>> // and no checking at all is required for ellipsoids
>>>>>
>>>>> #ifndef ELLIPSOID
>>>>>
>>>>> bool InBounds( vec3 P )
>>>>>
>>>>> {
>>>>>
>>>>> vec4 v = Ti * gl_ModelViewMatrixInverse * vec4( P, 1. );
>>>>>
>>>>> #if defined( CYLINDER ) || defined( CONE ) || defined( HYPERBOLOID1 )
>>>>> || defined( PARABOLOID )
>>>>>
>>>>> return v.z >= -BOUND && v.z <= BOUND;
>>>>>
>>>>> #else
>>>>>
>>>>> return all( greaterThanEqual( v.xyz, MIN_BOUND ) ) &&
>>>>>
>>>>> all( lessThanEqual( v.xyz, MAX_BOUND ) );
>>>>>
>>>>> #endif
>>>>>
>>>>> }
>>>>>
>>>>> #endif
>>>>>
>>>>>
>>>>> //------------------------------------------------------------------------------
>>>>>
>>>>> // INTERSECTION
>>>>>
>>>>> struct I
>>>>>
>>>>> {
>>>>>
>>>>> vec3 P;
>>>>>
>>>>> vec3 N;
>>>>>
>>>>> float t;
>>>>>
>>>>> };
>>>>>
>>>>>
>>>>> // compute unit normal from gradient
>>>>>
>>>>> vec3 ComputeNormal(vec3 P)
>>>>>
>>>>> {
>>>>>
>>>>> return normalize(vec3(dot(vec4(a, d, e, 1.), vec4(P, g)), // should
>>>>> multiply by 2 for actual gradient
>>>>>
>>>>> dot(vec4(d, b, f, 1.), vec4(P, h)), // should multiply by 2 for actual
>>>>> gradient
>>>>>
>>>>> dot(vec4(e, f, c, 1.), vec4(P, i)) // should multiply by 2 for actual
>>>>> gradient
>>>>>
>>>>> ));
>>>>>
>>>>> }
>>>>>
>>>>>
>>>>> // compute ray quadric intersection; if no intersection occurs I.t is
>>>>> < 0
>>>>>
>>>>> // main axis length and orientation are used to clip the quadric; not
>>>>>
>>>>> // required for closed quadrics (ellipsoids)
>>>>>
>>>>> // | a d e g |
>>>>>
>>>>> // | d b f h |
>>>>>
>>>>> // | e f c i |
>>>>>
>>>>> // | g h i j |
>>>>>
>>>>> // ax^2 + by^2 + cz^2 + 2dxy +2exz + 2fyz + 2gx + 2hy + 2iz + j = 0
>>>>>
>>>>> /// @todo pass vec3(a, b, c), vec3( d, e, f ) and vec3( g, h, i )
>>>>> instead of single coefficients
>>>>>
>>>>> I ComputeRayQuadricIntersection()
>>>>>
>>>>> {
>>>>>
>>>>> I ip;
>>>>>
>>>>> ip.t = -1.0;
>>>>>
>>>>> vec3 P = rayorigin;
>>>>>
>>>>> vec3 D = raydir;
>>>>>
>>>>> float A = 0.0;
>>>>>
>>>>> float B = 0.0;
>>>>>
>>>>> float C = 0.0;
>>>>>
>>>>> if (bool(perspective))
>>>>>
>>>>> {
>>>>>
>>>>> A = dot(vec3(a, b, c), D * D) + 2. * dot(vec3(d, e, f), D.xxy * D.yzz);
>>>>>
>>>>> B = 2. * dot(vec3(g, h, i), D);
>>>>>
>>>>> C = j;
>>>>>
>>>>> }
>>>>>
>>>>> else
>>>>>
>>>>> {
>>>>>
>>>>> A = c;
>>>>>
>>>>> //B = -2. * dot( vec4( c, e, f, 1. ), vec4( P.zxy, 1. ) );
>>>>>
>>>>> B = -2. * dot(vec4(d, e, f, i), vec4(P.zxy, 1.));
>>>>>
>>>>> C = dot(vec3(a, b, c), P * P) + 2. * (dot(vec3(d, e, f), P.xxy * P.yzz)
>>>>>
>>>>> + dot(vec3(g, h, i), P)) + j;
>>>>>
>>>>> }
>>>>>
>>>>> float delta = B * B - 4. * A * C;
>>>>>
>>>>> if (delta < 0.0)
>>>>>
>>>>> return ip;
>>>>>
>>>>> float d = sqrt(delta);
>>>>>
>>>>> A = 1. / A;
>>>>>
>>>>> A *= 0.5;
>>>>>
>>>>> float t2 = A * (-B + d);
>>>>>
>>>>> float t1 = A * (-B - d);
>>>>>
>>>>> #ifdef ELLIPSOID
>>>>>
>>>>> ip.P = rayorigin + D * min(t1, t2);
>>>>>
>>>>> ip.N = ComputeNormal(ip.P);
>>>>>
>>>>> ip.t = 0.;
>>>>>
>>>>> #else
>>>>>
>>>>> vec3 P1 = rayorigin + D * min( t1, t2 );
>>>>>
>>>>> vec3 P2 = rayorigin + D * max( t1, t2 );
>>>>>
>>>>> if( InBounds( P1 ) )
>>>>>
>>>>> {
>>>>>
>>>>> ip.P = P1;
>>>>>
>>>>> ip.N = ComputeNormal( P1 );
>>>>>
>>>>> ip.t = 0.;
>>>>>
>>>>> }
>>>>>
>>>>> else if( InBounds( P2 ) )
>>>>>
>>>>> {
>>>>>
>>>>> ip.P = P2;
>>>>>
>>>>> ip.N = ComputeNormal( P2 );
>>>>>
>>>>> ip.t = 0.;
>>>>>
>>>>> }
>>>>>
>>>>> #endif
>>>>>
>>>>> return ip;
>>>>>
>>>>> }
>>>>>
>>>>>
>>>>>
>>>>> //------------------------------------------------------------------------------
>>>>>
>>>>> // LIGHTING, standard phong lighting model
>>>>>
>>>>> vec3 lightDir = normalize(vec3(0.1, 0.1, 1.));
>>>>>
>>>>> float kd = 1.0;
>>>>>
>>>>> float ka = 0.01;
>>>>>
>>>>> float ks = .5;
>>>>>
>>>>> float sh = 90.0;
>>>>>
>>>>> vec4 refcolor = vec4(1., 1., 1., 1.);
>>>>>
>>>>> vec4 ComputeColor(vec4 color, vec3 n, vec3 P)
>>>>>
>>>>> {
>>>>>
>>>>> if (pointSize < FLAT_SHADE_POINT_SIZE)
>>>>>
>>>>> return color;
>>>>>
>>>>>
>>>>> vec3 col = (0, 0, 0);
>>>>>
>>>>> vec3 N;
>>>>>
>>>>> float d;
>>>>>
>>>>> vec3 viewdir;
>>>>>
>>>>> float vl;
>>>>>
>>>>> float s;
>>>>>
>>>>>
>>>>> for (int li = 0; li < 4; li++)
>>>>>
>>>>> {
>>>>>
>>>>> lightDir = normalize(gl_LightSource[li].position);
>>>>>
>>>>> N = faceforward(-n, lightDir, n);
>>>>>
>>>>> d = dot(N, lightDir);
>>>>>
>>>>> viewdir = normalize(-P);
>>>>>
>>>>> vl = max(0., dot(reflect(-lightDir, N), viewdir));
>>>>>
>>>>> s = pow(vl, gl_FrontMaterial.shininess);
>>>>>
>>>>> col += gl_FrontMaterial.specular * s * gl_LightSource[li].specular.rgb
>>>>> + kd
>>>>>
>>>>> * d * color.rgb * gl_LightSource[li].diffuse.rgb + ka * color.rgb
>>>>>
>>>>> * gl_LightSource[li].ambient.rgb;
>>>>>
>>>>> }
>>>>>
>>>>>
>>>>> return vec4(col, color.a);
>>>>>
>>>>>
>>>>> }
>>>>>
>>>>>
>>>>>
>>>>> //------------------------------------------------------------------------------
>>>>>
>>>>> // MAIN
>>>>>
>>>>> void propFuncFS(void)
>>>>>
>>>>> {
>>>>>
>>>>> if (pointSize < pointSizeThreshold || color.a <= 0.0)
>>>>>
>>>>> discard;
>>>>>
>>>>> vec3 fc = gl_FragCoord.xyz;
>>>>>
>>>>> fc.xy /= viewport;
>>>>>
>>>>> fc *= 2.0;
>>>>>
>>>>> fc -= 1.0;
>>>>>
>>>>> vec4 p = gl_ProjectionMatrixInverse * vec4(fc, 1.);
>>>>>
>>>>> if (bool(perspective))
>>>>>
>>>>> {
>>>>>
>>>>> // in perspective mode, rayorigin is always at (0, 0, 0)
>>>>>
>>>>> rayorigin = vec3(0., 0., 0.);
>>>>>
>>>>> raydir = vec3(p) / p.w;
>>>>>
>>>>> }
>>>>>
>>>>> else
>>>>>
>>>>> {
>>>>>
>>>>> // in orthographic mode, raydir is always ( 0., 0., -1. );
>>>>>
>>>>> raydir = vec3(0., 0., -1.);
>>>>>
>>>>> rayorigin = vec3(p.x / p.w, p.y / p.w, 0.);
>>>>>
>>>>> }
>>>>>
>>>>> // compute intersection
>>>>>
>>>>> I i = ComputeRayQuadricIntersection();
>>>>>
>>>>> if (i.t < 0.0)
>>>>>
>>>>> discard;
>>>>>
>>>>> // compute color
>>>>>
>>>>> gl_FragColor = ComputeColor(color, i.N, i.P);
>>>>>
>>>>> // update depth by projecting point and updating depth coordinate
>>>>>
>>>>> // the transposed version of the projection matrix is used to
>>>>>
>>>>> // perform vector, matrix row product in one line:
>>>>>
>>>>> // M[2][*] x V = Vt x Mt[*][2] where:
>>>>>
>>>>> // % V is a column vector
>>>>>
>>>>> // % Vt is a row vector
>>>>>
>>>>> // % M is a square matrix
>>>>>
>>>>> // % Mt is the transpose of M
>>>>>
>>>>> float z = dot(vec4(i.P, 1.), gl_ProjectionMatrixTranspose[2]);
>>>>>
>>>>> float w = dot(vec4(i.P, 1.), gl_ProjectionMatrixTranspose[3]);
>>>>>
>>>>> gl_FragDepth = 0.5 * (z / w + 1.0);
>>>>>
>>>>> }
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>> ERROR: In
>>>>> C:\DBD\pvs-x64\paraview\src\paraview\VTK\Rendering\OpenGL\vtkOpenGLProperty.cxx,
>>>>> line 415
>>>>>
>>>>> vtkPointSpriteProperty (000000001118DD20): Couldn't build the shader
>>>>> program. At this point , it can be an error in a shader or a driver bug.
>>>>>
>>>>>
>>>>> Cheers,
>>>>>
>>>>> Bruce
>>>>>
>>>>>
>>>>> On Mon, Feb 10, 2014 at 11:51 AM, Aashish Chaudhary <
>>>>> aashish.chaudhary at kitware.com<mailto:aashish.chaudhary at kitware.com>>
>>>>> wrote:
>>>>> Atleast, we need to know what shader its trying to use which is
>>>>> failing to compile on your system (TextureSprite, Quadrics (Attribute or
>>>>> Fixed Radius))
>>>>>
>>>>>
>>>>> On Mon, Feb 10, 2014 at 11:44 AM, Aashish Chaudhary <
>>>>> aashish.chaudhary at kitware.com<mailto:aashish.chaudhary at kitware.com>>
>>>>> wrote:
>>>>> Hi Bruce,
>>>>>
>>>>> Sorry, I thought replied to your email. In the log you sent me, I do
>>>>> see that it is stating that point sprites are supported. If you can put a
>>>>> break point in vtkPointSpriteProperty (at the error line) then we can find
>>>>> out exactly where the error is coming from.
>>>>>
>>>>> - Aashish
>>>>>
>>>>>
>>>>>
>>>>> On Mon, Feb 10, 2014 at 11:14 AM, Bruce Jones <
>>>>> bruce.david.jones at gmail.com<mailto:bruce.david.jones at gmail.com>>
>>>>> wrote:
>>>>> Is there anything else I can do to help debug this problem? It is
>>>>> quite frustrating to not have pointsprite working on this machine.
>>>>>
>>>>> Cheers,
>>>>> Bruce
>>>>>
>>>>>
>>>>> On Sun, Jan 26, 2014 at 6:26 PM, Bruce Jones <
>>>>> bruce.david.jones at gmail.com<mailto:bruce.david.jones at gmail.com>>
>>>>> wrote:
>>>>> Ok, I've attached the output from glview. Everything is supported for
>>>>> OpenGL <=4.2. versions 4.3 and 4.4 are partially supported.
>>>>>
>>>>> Cheers,
>>>>> Bruce
>>>>>
>>>>>
>>>>> On Thu, Jan 23, 2014 at 11:51 AM, Aashish Chaudhary <
>>>>> aashish.chaudhary at kitware.com<mailto:aashish.chaudhary at kitware.com>>
>>>>> wrote:
>>>>> http://www.realtech-vr.com/glview/
>>>>>
>>>>>
>>>>> On Wed, Jan 22, 2014 at 9:35 AM, Bruce Jones <
>>>>> bruce.david.jones at gmail.com<mailto:bruce.david.jones at gmail.com>>
>>>>> wrote:
>>>>> This is windows 8.1, is there a similar utility I can run on windows?
>>>>>
>>>>> Cheers,
>>>>> Bruce
>>>>>
>>>>>
>>>>> On Wed, Jan 22, 2014 at 9:31 AM, Aashish Chaudhary <
>>>>> aashish.chaudhary at kitware.com<mailto:aashish.chaudhary at kitware.com>>
>>>>> wrote:
>>>>> Is this a windows OS or Linux? If Linux can you send us the output of
>>>>> glxinfo (as a starting point to debug this).
>>>>>
>>>>> Thanks,
>>>>>
>>>>>
>>>>>
>>>>> On Wed, Jan 22, 2014 at 8:56 AM, Bruce Jones <
>>>>> bruce.david.jones at gmail.com<mailto:bruce.david.jones at gmail.com>>
>>>>> wrote:
>>>>> When using the PointSprite plugin on a new laptop I found two options
>>>>> cause it to stop working.
>>>>>
>>>>> When changing from "Sphere (texture)" to "Sphere"  get the following,
>>>>>
>>>>>
>>>>> ERROR: In
>>>>> C:\DBD\pvs-x64\paraview\src\paraview\VTK\Rendering\OpenGL\vtkOpenGLProperty.cxx,
>>>>> line 415
>>>>>
>>>>> vtkPointSpriteProperty (000000000BD110B0): Couldn't build the shader
>>>>> program. At this point , it can be an error in a shader or a driver bug.
>>>>>
>>>>>
>>>>> I thought this might be due to lack of opengl support for the graphics
>>>>> chip, which comes bundled with the I7-4600u I have. However intel claim it
>>>>> supports up to version 4.2 of OpenGL, so that should be fine...
>>>>>
>>>>>
>>>>> Also, when i choose to scale the point sprite size by values in an
>>>>> array, I get the following error,
>>>>>
>>>>>
>>>>> ERROR: In
>>>>> C:\DBD\pvs-x64\paraview\src\paraview\VTK\Rendering\OpenGL\vtkShaderProgram2.cxx,
>>>>> line 1084
>>>>>
>>>>> vtkShaderProgram2 (0000000014D4A1A0): glGetAttribLocation 1 OpenGL
>>>>> errors detected
>>>>>
>>>>> 0 : (1281) Invalid value
>>>>>
>>>>>
>>>>> Is there any solution for this?
>>>>>
>>>>>
>>>>> Cheers,
>>>>>
>>>>> Bruce
>>>>>
>>>>> _______________________________________________
>>>>> Powered by www.kitware.com<http://www.kitware.com>
>>>>>
>>>>> Visit other Kitware open-source projects at
>>>>> http://www.kitware.com/opensource/opensource.html
>>>>>
>>>>> Please keep messages on-topic and check the ParaView Wiki at:
>>>>> http://paraview.org/Wiki/ParaView
>>>>>
>>>>> Follow this link to subscribe/unsubscribe:
>>>>> http://www.paraview.org/mailman/listinfo/paraview
>>>>>
>>>>>
>>>>>
>>>>>
>>>>> --
>>>>> | Aashish Chaudhary
>>>>> | R&D Engineer
>>>>> | Kitware Inc.
>>>>> | www.kitware.com<http://www.kitware.com>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>> --
>>>>> | Aashish Chaudhary
>>>>> | R&D Engineer
>>>>> | Kitware Inc.
>>>>> | www.kitware.com<http://www.kitware.com>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>> --
>>>>> | Aashish Chaudhary
>>>>> | R&D Engineer
>>>>> | Kitware Inc.
>>>>> | www.kitware.com<http://www.kitware.com>
>>>>>
>>>>>
>>>>>
>>>>> --
>>>>> | Aashish Chaudhary
>>>>> | R&D Engineer
>>>>> | Kitware Inc.
>>>>> | www.kitware.com<http://www.kitware.com>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>> --
>>>>> | Aashish Chaudhary
>>>>> | R&D Engineer
>>>>> | Kitware Inc.
>>>>> | www.kitware.com<http://www.kitware.com>
>>>>>
>>>>>
>>>>>
>>>>> --
>>>>> | Aashish Chaudhary
>>>>> | R&D Engineer
>>>>> | Kitware Inc.
>>>>> | www.kitware.com<http://www.kitware.com>
>>>>>
>>>>>
>>>>>
>>>>> --
>>>>> | Aashish Chaudhary
>>>>> | R&D Engineer
>>>>> | Kitware Inc.
>>>>> | www.kitware.com<http://www.kitware.com>
>>>>>
>>>>
>>>>
>>>
>>>
>>> --
>>> | Aashish Chaudhary
>>> | R&D Engineer
>>> | Kitware Inc.
>>> | www.kitware.com
>>>
>>
>>
>
>
> --
> | Aashish Chaudhary
> | R&D Engineer
> | Kitware Inc.
> | www.kitware.com
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.paraview.org/pipermail/paraview/attachments/20140210/bc31e932/attachment-0001.html>


More information about the ParaView mailing list