Friday, August 15, 2008

Siggraph is over

Siggraph has come to a close, and I've walked away a little more informed than I was last week.

If there was an OpenGL BOF, I missed it. I was busy with the talks, and missed a number of things I'd liked to have seen. 

I enjoyed the Photon Mapping talk today; While I've been aware of it, and the basic ideas, I'd never looked at it in depth.  I like what I saw, and I'll have to pick up Henrik Jensen's book.  Matt Pharr's book also looks quite good, and I'll probably order both from Amazon when I get home. 

The talk on crowd simulation and perception was also interesting, and I'll have to have a look through the paper.

I picked up "Practical Multi-Projector Display Design", "Tensor Voting" and "Real-Time Collision Detection", each of which should keep me busy for a few weeks. Practical Multi-Projector Display Design should be helpful over the next few weeks as I setup our cave-like environment.

I'm looking forward to getting home, and I hope everyone had a good Siggraph. 

Thursday, August 14, 2008

OpenCL, DirectX Compute Shader, CUDA, CAL, Larrabee,  OpenGL 3.0, and a neat demo by Jon Olick

A few of the presentations this week have covered Larrabee, both in terms of architecture and conceptually.  A talk today mentioned that Larrabee could submit draw calls to itself, which I hadn't considered before.  Even if it fails to live up as a rasterizer, there will still be plenty of market for it as a compute-enabling device.

A high level overview and sample code of both OpenCL and DirectX Compute Shaders were presented, and I'm fairly excited.  They're quite different approaches, with different goals, and I whole heartedly hope they both work out.

I've used CUDA a bit in the past, but I didn't know until today that AMD had updated their offering from CTM to a new higher-level api called CAL.  I'll have to check it out next time I have an ATi board to play with.

I've already said I was disappointed with what was missing in OpenGL 3.0. What I didn't say is that I'm excited about working with the new extensions and seeing what I can do.

Wednesday, August 13, 2008

OpenGL 3.0, PhysX

OpenGL 3.0 is a bit of a disappointment. The API promised never materialized. It would have been better recieved by the community if the ARB/Khronos had been up front about issues as they arose. Instead, they decided to keep things quiet, and many developers are quite upset. I'm going to spend a couple of months evaluating it, but I am disappointed and I've started http://osxna.blogspot.com to cover my XNA and D3D projects. (I'm going to keep this blog alive too.)

I went to the PhysX presentation at Siggraph, and asked the presenter about OS X support. His reply was something along the lines of "This question has come up before. I can't say anything official, but we're looking at it." From the way he said it, I took it as a "Yes, but I can't say yes because we haven't officially announced it." CUDA is available on OS X, and PhysX is built on CUDA, so the framework is there. We'll see what happens.

Tuesday, July 8, 2008

Texture Arrays

We need them in OS X. Please?

Monday, July 7, 2008

Sony Vector Math Library

I've decided to dump my own vector math library and use Sony's vector math library provided on the Bullet svn. 

I had planned to use the C++ library, but it doesn't compile with GCC. I was considering making it portable, but I learned something new about POD types and decided to go with the C interface.

Thus far my experince has been extremely positive, and I'd recommend it to anyone looking for a math library for OpenGL.

Sunday, July 6, 2008

Physics 

I enjoyed working with PhysX on Windows a few years ago, so when I recently started to look into physics systems for the Mac it was my first choice; Unfortunately, PhysX doesn't support OS X.

I haven't used Bullet before, but I'm going to give it a shot.

Andrew.

Wednesday, June 25, 2008

GLOSX Quick Trick

If you're using GLUT in OS X and you need to enable VSync you can do it by adding the following two lines of code to your project and including

int vsync = 1;
CGLSetParameter(CGLGetCurrentContext(), kCGLCPSwapInterval, &vsync);

I usually toss it in right after my call to glutCreateWindow.