2011-09-26
UnRoot LG Optimus V
I needed to find out how to remove the root my LG Optimus V. Needed to UnRoot my phone and return it to stock. Found this link. Very helpful. Needed to refer back to my own link (HERE) about rooting for a refresher, but all in all pretty straight forward. Especially if you have made a backup of the stock rom, removing the root from your LG Optimus V should not be too difficult.
2011-08-15
OpenSL ES for Android
I'm beginning to feel like an AD&D half-elf multi-class 3rd level character. All of my classes are level 1 or 2, and I've got like 7 classes... If you don't know what I mean, I'm not going to explain. (It's actually kinda cool in a way: It keeps things interesting.) Here's another one!
Time to become a sound guy!
**Think of this API (Application Programming Interface) as a huge soundboard in a recording studio. The computer screen is a window into the recording booth. The keywords and classes are buttons, dials, sliders and groups of all of the above situated on the interface/soundboard.
While learning the NDK for Android SDK, I am focusing on OpenSL ES for Android. Sound baby. I'll throw some notes up here. I'm not promising any organization and/or coherency.
This first link is titled, "OpenSL ES for Android". It refers specifically to using OpenSL ES within Android 2.3, the implementations and limitations thereof and other important knowledge and warnings.
http://mobilepearls.com/labs/native-android-api/opensles/index.html
{
Some extracted notes on the above link:
Note that the field
OpenSL ES for Android supports a single engine per application, and up to 32 objects. Available device memory and CPU may further restrict the usable number of objects.
...The Android simple buffer queue data locator and interface are identical to the OpenSL ES 1.0.1 buffer queue locator and interface, except that Android simple buffer queues may be used with both audio players and audio recorders, and are limited to PCM data format. [OpenSL ES 1.0.1 buffer queues are for audio players only, and are not restricted to PCM data format.]
For recording, the application should enqueue empty buffers. Upon notification of completion via a registered callback, the filled buffer is available for the application to read.
For playback there is no difference. But for future source code compatibility, we suggest that applications use Android simple buffer queues instead of OpenSL ES 1.0.1 buffer queues.
[found these bits interesting]
...Callback handlers are called from internal non-application thread(s) which are not attached to the Dalvik virtual machine and thus are ineligible to use JNI...
}
Liar! Blasphemer!!!
I don't see the connection! Huh? What? If you can figure out how the above link is indirectly connected to an industrial metal group from the 80's and 90's you get a gold star.
The official Khronos site on OpenSL ES. (Non-specific to Android of course)
http://www.khronos.org/opensles/
NOTE:I must apologize that there isn't some sort of tutorial or sample code or anything here. Unfortunately, I had to shift gears and run off and go a different direction for a while, so I never did really get into OpenSL ES any further (YET!). Those links are all I've got.
Time to become a sound guy!
**Think of this API (Application Programming Interface) as a huge soundboard in a recording studio. The computer screen is a window into the recording booth. The keywords and classes are buttons, dials, sliders and groups of all of the above situated on the interface/soundboard.
While learning the NDK for Android SDK, I am focusing on OpenSL ES for Android. Sound baby. I'll throw some notes up here. I'm not promising any organization and/or coherency.
This first link is titled, "OpenSL ES for Android". It refers specifically to using OpenSL ES within Android 2.3, the implementations and limitations thereof and other important knowledge and warnings.
http://mobilepearls.com/labs/native-android-api/opensles/index.html
{
Some extracted notes on the above link:
- ...Compiled and linked inline
- You can link your audio content directly into the shared library, and then play it using an audio player with buffer queue data locator. This is most suitable for short PCM format clips. The example code uses this technique for the "Hello" and "Android" clips. The PCM data was converted to hex strings using a
bin2c
tool (not supplied).
Note that the field
samplesPerSec
is actually in units of milliHz, despite the misleading name. To avoid accidentally using the wrong value, you should initialize this field using one of the symbolic constants defined for this purpose (such as SL_SAMPLINGRATE_44_1
etc.)
Platform configuration
...OpenSL ES for Android is designed for multi-threaded applications, and is thread-safe.OpenSL ES for Android supports a single engine per application, and up to 32 objects. Available device memory and CPU may further restrict the usable number of objects.
slCreateEngine
recognizes, but ignores, these engine options: SL_ENGINEOPTION_THREADSAFE
SL_ENGINEOPTION_LOSSOFCONTROL
Planning for source compatibility [things to be very careful about]
...SL_DATAFORMAT_PCM
does not permit the application to specify the representation of the data as signed integer, unsigned integer, or floating-point. The Android implementation assumes that 8-bit data is unsigned integer and 16-bit is signed integer. In addition, the field samplesPerSec
is a misnomer, as the actual units are milliHz. These issues are expected to be addressed in the next OpenSL ES version, which will introduce a new extended PCM data format that permits the application to explicitly specify the representation, and corrects the field name. As this will be a new data format, and the current PCM data format will still be available (though deprecated), it should not require any immediate changes to your code.
...The Android simple buffer queue data locator and interface are identical to the OpenSL ES 1.0.1 buffer queue locator and interface, except that Android simple buffer queues may be used with both audio players and audio recorders, and are limited to PCM data format. [OpenSL ES 1.0.1 buffer queues are for audio players only, and are not restricted to PCM data format.]
For recording, the application should enqueue empty buffers. Upon notification of completion via a registered callback, the filled buffer is available for the application to read.
For playback there is no difference. But for future source code compatibility, we suggest that applications use Android simple buffer queues instead of OpenSL ES 1.0.1 buffer queues.
Objects and interface initialization
[Important to review this section extensively to understand how OpenSL operates. No room to paste it all here.][found these bits interesting]
...Callback handlers are called from internal non-application thread(s) which are not attached to the Dalvik virtual machine and thus are ineligible to use JNI...
Performance
As OpenSL ES is a native C API, non-Dalvik application threads which call OpenSL ES have no Dalvik-related overhead such as garbage collection pauses. However, there is no additional performance benefit to the use of OpenSL ES other than this. In particular, use of OpenSL ES does not result in lower audio latency, higher scheduling priority, etc. than what the platform generally provides. On the other hand, as the Android platform and specific device implementations continue to evolve, an OpenSL ES application can expect to benefit from any future system performance improvements.}
Liar! Blasphemer!!!
I don't see the connection! Huh? What? If you can figure out how the above link is indirectly connected to an industrial metal group from the 80's and 90's you get a gold star.
The official Khronos site on OpenSL ES. (Non-specific to Android of course)
http://www.khronos.org/opensles/
NOTE:I must apologize that there isn't some sort of tutorial or sample code or anything here. Unfortunately, I had to shift gears and run off and go a different direction for a while, so I never did really get into OpenSL ES any further (YET!). Those links are all I've got.
Notes on Android NDK
Terms for the day:
JNI - The Java Native Interface (JNI) is a programming framework that enables Java code running in a Java Virtual Machine (JVM) to call and to be called[1] by native applications (programs specific to a hardware and operating system platform) and libraries written in other languages such as C, C++ and assembly.
Oh really? Well, what the hell does "native" mean in this context?
Native application - An application designed to run in the computer environment (machine language and OS) being referenced. The term is used to contrast a native application with an interpreted one such as a Java application that is not native to a single platform. The term may also be used to contrast a native application with an emulated application, which was originally written for a different platform.
Aha... so being that the code is targeted at a specific operating system (ie. Gingerbread) and hardware (eg. LG Optimus V running Gingerbread), there is speed to be gained! According to many sources, anywhere from 10x to 100x depending on the sitch.
Here's a link on the Android developers site about installing and getting started with the Android Native Development Tools. The NDK is a companion to the Android SDK, so all SDK installation and components should already be installed before moving forward with the NDK.
http://developer.android.com/sdk/ndk/index.html
I downloaded from this link http://dl.google.com/android/ndk/android-ndk-r6-linux-x86.tar.bz2 and then extracted into home/ultramanjones/android folder.
Read the Android NDK Overview (as instructed).
The documentation mentioned ARM CPUs... from Wiki:
"ARM is a 32-bit reduced instruction set computer (RISC) instruction set architecture (ISA) developed by ARM Holdings. It was known as the Advanced RISC Machine..."
and...
"The relative simplicity of ARM processors makes them suitable for low power applications. As a result, they have become dominant in the mobile and embedded electronics market..."
So this is why we're talking about this; ARM CPUs are in all the cell phones.
ADT - Android Development Tools is a plugin for the Eclipse IDE that is designed to give you a powerful, integrated environment in which to build Android applications.
Android makefile specification file:
JNI - The Java Native Interface (JNI) is a programming framework that enables Java code running in a Java Virtual Machine (JVM) to call and to be called[1] by native applications (programs specific to a hardware and operating system platform) and libraries written in other languages such as C, C++ and assembly.
Oh really? Well, what the hell does "native" mean in this context?
Native application - An application designed to run in the computer environment (machine language and OS) being referenced. The term is used to contrast a native application with an interpreted one such as a Java application that is not native to a single platform. The term may also be used to contrast a native application with an emulated application, which was originally written for a different platform.
Aha... so being that the code is targeted at a specific operating system (ie. Gingerbread) and hardware (eg. LG Optimus V running Gingerbread), there is speed to be gained! According to many sources, anywhere from 10x to 100x depending on the sitch.
Here's a link on the Android developers site about installing and getting started with the Android Native Development Tools. The NDK is a companion to the Android SDK, so all SDK installation and components should already be installed before moving forward with the NDK.
http://developer.android.com/sdk/ndk/index.html
I downloaded from this link http://dl.google.com/android/ndk/android-ndk-r6-linux-x86.tar.bz2 and then extracted into home/ultramanjones/android folder.
Read the Android NDK Overview (as instructed).
The documentation mentioned ARM CPUs... from Wiki:
"ARM is a 32-bit reduced instruction set computer (RISC) instruction set architecture (ISA) developed by ARM Holdings. It was known as the Advanced RISC Machine..."
and...
"The relative simplicity of ARM processors makes them suitable for low power applications. As a result, they have become dominant in the mobile and embedded electronics market..."
So this is why we're talking about this; ARM CPUs are in all the cell phones.
ADT - Android Development Tools is a plugin for the Eclipse IDE that is designed to give you a powerful, integrated environment in which to build Android applications.
Android makefile specification file:
file:///home/ultramanjones/android/android-ndk-r6/docs/ANDROID-MK.html
2011-07-15
Super Bible
I recently installed (again) Visual C++ 2008 Express Edition, downloaded the Super Bible demo library from their site and started going through the OpenGL SuperBible 5th Edition chapter by chapter and picking apart the demos (as they do in the book).
On chapter 3 currently. Lately, I've been coding in PyOpenGL, so C++ OpenGL is quite different, plus the SuperBible utilizes its own GLTools library (early in the book especially) to simplify the learning curve, but I'm finding it quite a nice refresher and it's so nice to have all of the demos right there and working perfectly inside VC 2008 Express. Too be able to pick apart the code, mess with it, copy from it, and watch it run on the fly is invaluable. Highly recommended. Man if only we'd had such a luxury when we (that is me and my colleagues in Intro to Game Physics) were humping our happy asses up 3D Buzz mountain without any documentation to speak of! Gack! WHY Buzz and Joel? WHY!!!?
On chapter 3 currently. Lately, I've been coding in PyOpenGL, so C++ OpenGL is quite different, plus the SuperBible utilizes its own GLTools library (early in the book especially) to simplify the learning curve, but I'm finding it quite a nice refresher and it's so nice to have all of the demos right there and working perfectly inside VC 2008 Express. Too be able to pick apart the code, mess with it, copy from it, and watch it run on the fly is invaluable. Highly recommended. Man if only we'd had such a luxury when we (that is me and my colleagues in Intro to Game Physics) were humping our happy asses up 3D Buzz mountain without any documentation to speak of! Gack! WHY Buzz and Joel? WHY!!!?
2011-07-11
Installing PyOpenGL-3.0.1 in Ubuntu 10.04 LTS
Why couldn't I find this in the first 6 hours of searching???
http://docs.python.org/release/3.0.1/download.html
And right there at the "Cheese Shop" too... aye aye yae! The instructions for installing were on page 8 of the 50 page document.
(*note: if you are seeing this for the first time be sure and install the necessary dependencies [see below], AND remove any former installations of PyOpenGL, such as PyOpenGL-3.0.0 before continuing)
All I had to do was download the tarball from http://www.python.org/ftp/python/3.0.1/Python-3.0.1.tar.bz2
Move it to /usr/local/src
Right click on it and choose "extract here".
Open a terminal and type:
cd /usr/local/src/PyOpenGL-3.0.1
Then:
sudo python setup.py install
Entered my password and watched it go.
Just like that I was back in business and running the afore mentioned demo on my other machine.
I should throw in a caveat here. I did in fact first install Numpy, PIL, and GLUT as dependencies already, for when I was running PyOpenGL-3.0.0. These all have executable "instant" installers available so long as you are running python 2.6. Find them here.
To remove former installation PyOpenGL-3.0.0 I just opened Synaptic Package Manager (System/Administration/Synaptic Package Manager) searched for "pyopengl", right clicked on "...3.0.0" when it showed up, and selected "Remove Completely".
=============================================
An Ubuntu link that also may be helpful on troublesome tarball installs:
https://help.ubuntu.com/community/CompilingEasyHowTo
http://docs.python.org/release/3.0.1/download.html
And right there at the "Cheese Shop" too... aye aye yae! The instructions for installing were on page 8 of the 50 page document.
(*note: if you are seeing this for the first time be sure and install the necessary dependencies [see below], AND remove any former installations of PyOpenGL, such as PyOpenGL-3.0.0 before continuing)
All I had to do was download the tarball from http://www.python.org/ftp/python/3.0.1/Python-3.0.1.tar.bz2
Move it to /usr/local/src
Right click on it and choose "extract here".
Open a terminal and type:
cd /usr/local/src/PyOpenGL-3.0.1
Then:
sudo python setup.py install
Entered my password and watched it go.
Just like that I was back in business and running the afore mentioned demo on my other machine.
I should throw in a caveat here. I did in fact first install Numpy, PIL, and GLUT as dependencies already, for when I was running PyOpenGL-3.0.0. These all have executable "instant" installers available so long as you are running python 2.6. Find them here.
To remove former installation PyOpenGL-3.0.0 I just opened Synaptic Package Manager (System/Administration/Synaptic Package Manager) searched for "pyopengl", right clicked on "...3.0.0" when it showed up, and selected "Remove Completely".
=============================================
An Ubuntu link that also may be helpful on troublesome tarball installs:
https://help.ubuntu.com/community/CompilingEasyHowTo
2011-07-10
A Simple PyOpenGL-3.0.1 Shader Demo
Alright. Here is that code that I mentioned in an earlier post. Know that you will need to install Python 2.6 and PyOpenGL-3.0.1 in order to run this code. It takes advantage of the new shader convenience module found in 3.0.1. This helped make switching shaders on the fly much easier to implement. Type "," or "." to page through shaders. "n" to toggle normals from "averaged" to "flat". When viewing "no shader" hit "1" or "2" to toggle light0 and light1 on/off respectively. Oh, and can't forget, "r" to start the spheres rotating. The sphere on the left is a glutSolidSphere, the one on the right is a sphere built from a .msh file that Mike wrote.
Look through the code! I hope it's helpful to someone, somewhere.
rendersphere.py
sphere1218.msh
PS. I may update this later and include more information on the dependencies and/or installing the correct versions of PyOpenGL... etc.
PyOpenGL-3.0.1 is only available as a tarball and/or .bz2 package. So... check
out my later post http://ultraopengl.blogspot.com/2011/07/installing-pyopengl-301.html for info on installing it.
Look through the code! I hope it's helpful to someone, somewhere.
rendersphere.py
sphere1218.msh
PS. I may update this later and include more information on the dependencies and/or installing the correct versions of PyOpenGL... etc.
PyOpenGL-3.0.1 is only available as a tarball and/or .bz2 package. So... check
out my later post http://ultraopengl.blogspot.com/2011/07/installing-pyopengl-301.html for info on installing it.
2011-07-09
Shaders I'm looking at...
Some OpenGL and Shader code I've found laying around the inter-webs:
Refract/reflect combined with facing ratio, and blinn specular
http://code.google.com/p/glslang-library/source/browse/trunk/trunk/glslang/shaders/material/reflect.frag.glsl?r=8
http://code.google.com/p/glslang-library/source/browse/trunk/trunk/glslang/shaders/material/reflect.vert.glsl?r=8
(should have named those last two reflect frag and reflect vert respectively)
especially look at the answer to this question and the links the answerer posted.
http://stackoverflow.com/questions/5137111/opengl-alternative-for-drawing-textures-with-glbegin-glend
Refract/reflect combined with facing ratio, and blinn specular
http://code.google.com/p/glslang-library/source/browse/trunk/trunk/glslang/shaders/material/reflect.frag.glsl?r=8
http://code.google.com/p/glslang-library/source/browse/trunk/trunk/glslang/shaders/material/reflect.vert.glsl?r=8
(should have named those last two reflect frag and reflect vert respectively)
especially look at the answer to this question and the links the answerer posted.
http://stackoverflow.com/questions/5137111/opengl-alternative-for-drawing-textures-with-glbegin-glend
2011-07-08
NETFLIX ON OPTIMUS V!!! (link I found)
My cell wasn't charging on any charger I could find. I was about to panic. I was searching for sites concerning the issue while I reset the phone and I found THIS!!! My phone is fine now that I turned it off and took the battery out, btw. smiles...
http://lgoptimusv.info/2011/06/netflix-work-lg-optimus-v-no-roo/#more-1311
My thanks to Rock That LG Optimus V for the info.
http://lgoptimusv.info/2011/06/netflix-work-lg-optimus-v-no-roo/#more-1311
My thanks to Rock That LG Optimus V for the info.
Reminder to myself
Post the code that we worked up for the simple shader comparison tool in PyOpenGL. Why not share the knowledge with other beginners?! Good stuff. When we get deeper in I may not want to share all of our tricks, or I might not care... not sure, but, on this level, I KNOW I am hungry searching for good code and it is so hard to find, so, in good conscience, I just gotta do it. Unfortunately, I don't have it on hand. Thus, the reminder post. I'll erase this later. Peace. (as if anyone is reading this lol)
PS. What I am referring to above is that I got a few simple shaders working on Mike and I's sphere demo thing. Phong, multiple light phong, toon, point light. Basic stuff. Also we added the ability to swap out shaders on the fly to see the difference. Mike created triangle mesh sphere from scratch complete with proper VBO's to house the vertices and normals. He also created a version that has what he's calling "averaged normals". It makes a polyhedron (in this case shaped much like a sphere) appear smoother and rounder as if made from exponentially more triangles. Awesome technique. So know we have this demo thing where we can test new shaders and play around with GLSL and OpenGL. Next, come more complicated shaders, then textures, then effects... etc...
PS. What I am referring to above is that I got a few simple shaders working on Mike and I's sphere demo thing. Phong, multiple light phong, toon, point light. Basic stuff. Also we added the ability to swap out shaders on the fly to see the difference. Mike created triangle mesh sphere from scratch complete with proper VBO's to house the vertices and normals. He also created a version that has what he's calling "averaged normals". It makes a polyhedron (in this case shaped much like a sphere) appear smoother and rounder as if made from exponentially more triangles. Awesome technique. So know we have this demo thing where we can test new shaders and play around with GLSL and OpenGL. Next, come more complicated shaders, then textures, then effects... etc...
2011-07-05
Installing PyOpenGL in Windows XP
I'm going to post this as is. I kept a record on notepad as I went. It ain't exactly a tutorial. Just a weB LOG of figuring out what to do!
Used this site as a reference point, (among others):
http://pyopengl.sourceforge.net/documentation/installation.html
It's sourceforge, so I tend to trust it, but I think it's wicked old...
BTW I am on my sister's family PC... ;) (stuck here dog-sitting)
Here's the rest:
Started just after 2:30am or so...
Installed (In Order):
python-2.7.2
PyOpenGL-3.0.1.win32
*could NOT install PyOpenGL-accelerate-3.0.1.win32-py2.6
because it requires Python 2.6 precisely.
- tried to install numpy-1.6.1rc2-win32-superpack-python2.6 (Numeric Python), but it
too requires 2.6.
-Downloaded the tarball file for Python 2.6.7 (Python-2.6.7.tar.bz2)j
-Downloaded and installed 7Zip.
-extracted the bz2 and then unzipped to the program files folder
- ^that did not work... apparently I need to use makefiles etc... and I'm not about to get into that whole process blind. Couldn't find any tutorials/instructions or forum chatter so...
-Downloaded MSI installer for Python 2.6
-^installed
-installed Numpy (see above)
-downloaded and installed PIL-1.1.7.win32-py2.6
(http://www.pythonware.com/products/pil/index.htm#pil117)
-Tried to install GLUT, but then realized that it SHOULD be included with the PyOpenGL
install (according to: http://pyopengl.sourceforge.net/documentation/installation.html)
-Downloaded PyGame installer for 2.6 (pygame-1.9.1.win32-py2.6) and installed.
-Installed PyOpenGL-3.0.1.win32
-Installed PyOpenGL-accelerate-3.0.1.win32-py2.6
-Installed Numpy
#will ANY OF THIS S#!T WORK? God knows...
It DID NOT appear to work (when I tried to run some Rubik's Cube/NEHE based code I found I got lots of discouraging errors, especially involving OpenGL calls and Numpy)
GACK!!!
Uninstalled everything I could find and re-installing... hopefully in the proper order this time...? (At least I already have all the installers found and dl'd)
4:31am
-Downloaded updated drivers for this crappy Intel video chipset on AK's PC and installed'em
-Restarting PC now
-Re-installed Python 2.6
-Downloaded and installed OpenGL Extensions Viewer 3.37
-It says that OpenGL 1.4 is the version on this PC
-Installed numpy-1.6.1rc2-win32-superpack-python2.6
-Installed PIL-1.1.7.win32-py2.6
-Installed PyOpenGL-3.0.1.win32 (which supposedly contains GLUT and GLE)
-When attempting to install PyOpenGL-accelerate-3.0.1.win32-py2.6 I got a pop up error
window. FAILED TO INSTALL ^^^^
-Spent an hour or so bouncing around the net like a fly caught in a spider web... googling
"pyopengl nehe" over and over in different forms
-FINALLY found http://pypi.python.org/pypi/PyOpenGL-Demo
-This package contains most of the NEHE lessons ported to PyOpenGL
-Ran Lesson 5 and it worked!!! yay!!!
TOMORROW I work on getting the tune shader working AND THEN phong...
5:45am Ouch...
Used this site as a reference point, (among others):
http://pyopengl.sourceforge.net/documentation/installation.html
It's sourceforge, so I tend to trust it, but I think it's wicked old...
BTW I am on my sister's family PC... ;) (stuck here dog-sitting)
Here's the rest:
Started just after 2:30am or so...
Installed (In Order):
python-2.7.2
PyOpenGL-3.0.1.win32
*could NOT install PyOpenGL-accelerate-3.0.1.win32-py2.6
because it requires Python 2.6 precisely.
- tried to install numpy-1.6.1rc2-win32-superpack-python2.6 (Numeric Python), but it
too requires 2.6.
-Downloaded the tarball file for Python 2.6.7 (Python-2.6.7.tar.bz2)j
-Downloaded and installed 7Zip.
-extracted the bz2 and then unzipped to the program files folder
- ^that did not work... apparently I need to use makefiles etc... and I'm not about to get into that whole process blind. Couldn't find any tutorials/instructions or forum chatter so...
-Downloaded MSI installer for Python 2.6
-^installed
-installed Numpy (see above)
-downloaded and installed PIL-1.1.7.win32-py2.6
(http://www.pythonware.com/products/pil/index.htm#pil117)
-Tried to install GLUT, but then realized that it SHOULD be included with the PyOpenGL
install (according to: http://pyopengl.sourceforge.net/documentation/installation.html)
-Downloaded PyGame installer for 2.6 (pygame-1.9.1.win32-py2.6) and installed.
-Installed PyOpenGL-3.0.1.win32
-Installed PyOpenGL-accelerate-3.0.1.win32-py2.6
-Installed Numpy
#will ANY OF THIS S#!T WORK? God knows...
It DID NOT appear to work (when I tried to run some Rubik's Cube/NEHE based code I found I got lots of discouraging errors, especially involving OpenGL calls and Numpy)
GACK!!!
Uninstalled everything I could find and re-installing... hopefully in the proper order this time...? (At least I already have all the installers found and dl'd)
4:31am
-Downloaded updated drivers for this crappy Intel video chipset on AK's PC and installed'em
-Restarting PC now
-Re-installed Python 2.6
-Downloaded and installed OpenGL Extensions Viewer 3.37
-It says that OpenGL 1.4 is the version on this PC
-Installed numpy-1.6.1rc2-win32-superpack-python2.6
-Installed PIL-1.1.7.win32-py2.6
-Installed PyOpenGL-3.0.1.win32 (which supposedly contains GLUT and GLE)
-When attempting to install PyOpenGL-accelerate-3.0.1.win32-py2.6 I got a pop up error
window. FAILED TO INSTALL ^^^^
-Spent an hour or so bouncing around the net like a fly caught in a spider web... googling
"pyopengl nehe" over and over in different forms
-FINALLY found http://pypi.python.org/pypi/PyOpenGL-Demo
-This package contains most of the NEHE lessons ported to PyOpenGL
-Ran Lesson 5 and it worked!!! yay!!!
TOMORROW I work on getting the tune shader working AND THEN phong...
5:45am Ouch...
Subscribe to:
Posts (Atom)