Python wrapper for NVidia Cg Toolkit
python-cg is a Python wrapper for NVidia Cg Toolkit runtime. I’ve started it because I like Python, I like NVidia CG and I want to to do some computer game/3d graphicsprototyping and research. Also I still find C++ counterproductive as far as my needs are concerned and I don’t want to waste my time doing boring stuff. Programming in Python is fun.
I know about some projects that were meant to bring CG to Python but as far as I know they’re history now.
Project is hostead at GitHub: https://github.com/jstasiak/python-cg.
The project is in very early development stage. Overview of what’s supported right now:
What doesn’t work at the moment and there’s no plan to implement it:
This project requires:
Python packages required to build and install python-cg:
To build documentation/run tests you also need:
Pregenerated documentation can be found at https://python-cg.readthedocs.org/en/latest/.
You can also build documentation all by yourself by calling:
sphinx-build -b html docs docs/build/html
Generated HTML files are placed in docs/build/html/ directory.
To build the project in place, run:
python setup.py build_ext --inplace
from cg import CG cg = CG() context = cg.create_context()
We want to use an effect to render some stuff so we’re gonna create Effect from file:
effect = context.create_effect_from_file('effect.cgfx')
This assumes that you have a file named effect.cgfx and that it contains a valid CG effect.
We now have access to Effect’s techniques and parameters:
for technique in effect.techniques: # ... for parameter in effect.parameters: # ...
For the sake of simplicity let’s say we have a parameterless effect with only one Technique:
technique = effect.techniques
gl.glClear(gl.GL_COLOR_BUFFER_BIT) for pass_ in technique.passes: pass_.begin() gl.glBegin(gl.GL_TRIANGLES) gl.glVertex3f(-0.5, -0.5, 0) gl.glVertex3f(0.5, -0.5, 0) gl.glVertex3f(0, 0.5, 0) gl.glEnd() pass_.end() # swap buffers
You can find complete, runnable example application in example directory. Please note that it requires (in addition to python-cg requirements):
Development version of SFML 2
Python packages listed in example/requirements.txt:
pip install -r example/requirements.txt
Then to run the example:
python setup.py build_ext --inplace PYTHONPATH=. python example/main.py
To run tests, execute:
© 2013, Jakub Stasiak
This project is licensed under MIT License, see LICENSE file for details.