point_parameters.py :  » Game-2D-3D » PyOpenGL » PyOpenGL-3.0.1 » OpenGL » GL » ARB » Python Open Source

Home
Python Open Source
1.3.1.2 Python
2.Ajax
3.Aspect Oriented
4.Blog
5.Build
6.Business Application
7.Chart Report
8.Content Management Systems
9.Cryptographic
10.Database
11.Development
12.Editor
13.Email
14.ERP
15.Game 2D 3D
16.GIS
17.GUI
18.IDE
19.Installer
20.IRC
21.Issue Tracker
22.Language Interface
23.Log
24.Math
25.Media Sound Audio
26.Mobile
27.Network
28.Parser
29.PDF
30.Project Management
31.RSS
32.Search
33.Security
34.Template Engines
35.Test
36.UML
37.USB Serial
38.Web Frameworks
39.Web Server
40.Web Services
41.Web Unit
42.Wiki
43.Windows
44.XML
Python Open Source » Game 2D 3D » PyOpenGL 
PyOpenGL » PyOpenGL 3.0.1 » OpenGL » GL » ARB » point_parameters.py
'''OpenGL extension ARB.point_parameters

This module customises the behaviour of the 
OpenGL.raw.GL.ARB.point_parameters to provide a more 
Python-friendly API

Overview (from thespec import 
  
  This extension supports additional geometric characteristics of
  points. It can be used to render particles or tiny light sources,
  commonly referred to as "Light points".
  
  The raster brightness of a point is a function of the point area,
  point color, point transparency, and the response of the display's
  electron gun and phosphor. The point area and the point transparency
  are derived from thepointsizecurrentlyprovidedwiththesize import 
  parameter of glPointSize.
  
  The primary motivation is to allow the size of a point to be
  affected by distance attenuation. When distance attenuation has an
  effect, the final point size decreases as the distance of the point
  from theeyeincreases. import 
  
  The secondary motivation is a mean to control the mapping from the import 
  point size to the raster point area and point transparency. This is
  done in order to increase the dynamic range of the raster brightness
  of points. In other words, the alpha component of a point may be
  decreased (and its transparency increased) as its area shrinks below
  a defined threshold.
  
  This extension defines a derived point size to be closely related to
  point brightness. The brightness of a point is given by:
  
                      1
      dist_atten(d) = -------------------
                      a + b * d + c * d^2
  
      brightness(Pe) = Brightness * dist_atten(|Pe|)
  
  where 'Pe' is the point in eye coordinates, and 'Brightness' is some
  initial value proportional to the square of the size provided with
  PointSize. Here we simplify the raster brightness to be a function
  of the rasterized point area and point transparency.
  
                  brightness(Pe)       brightness(Pe) >= Threshold_Area
      area(Pe) =
                  Threshold_Area       Otherwise
  
      factor(Pe) = brightness(Pe)/Threshold_Area
  
      alpha(Pe) = Alpha * factor(Pe)
  
  where 'Alpha' comes with the point color (possibly modified by
  lighting).
  
  'Threshold_Area' above is in area units. Thus, it is proportional to
  the square of the threshold provided by the programmer through this
  extension.
  
  The new point size derivation method applies to all points, while
  the threshold applies to multisample points only.

The official definition of this extension is available here:
http://www.opengl.org/registry/specs/ARB/point_parameters.txt
'''
from OpenGL import platform,constants,constant,arrays
from OpenGL import extensions,wrapper
from OpenGL.GL import glget
import ctypes
from OpenGL.raw.GL.ARB.point_parameters import *
### END AUTOGENERATED SECTION
from OpenGL.GL import glget
glget.addGLGetConstant( GL_POINT_SIZE_MIN_ARB, (1,) )
glget.addGLGetConstant( GL_POINT_SIZE_MAX_ARB , (1,) )
glget.addGLGetConstant( GL_POINT_FADE_THRESHOLD_SIZE_ARB, (1,) )
glget.addGLGetConstant( GL_POINT_DISTANCE_ATTENUATION_ARB, (3,) )

glPointParameterfvARB = arrays.setInputArraySizeType(
    glPointParameterfvARB,
    None, # XXX should be dependant on the pname field!
    arrays.GLfloatArray, 
    'params',
)
www.java2java.com | Contact Us
Copyright 2009 - 12 Demo Source and Support. All rights reserved.
All other trademarks are property of their respective owners.