I’ll be teaching Modern OpenGL-ES 3.0 & 3.1 Programming @ AnDevCon in Boston

I will be speaking at AnDevCoADC-SpeakerBadgen in Boston, MA this coming May. My half-day tutorial starts Tuesday May 22nd at 9am. I’ll be talking about Modern OpenGL-ES, basically covering all the new stuff in 3.0 AND 3.1. The tutorial will focus on best practices for OpenGL-ES, what the new features are that you should know about and how to optimize for best performance. I’ll also be covering different ways to start programming GLES-3.0 right now! Topic will include;

  • Compute Shaders
  • Shader Objects
  • New Shader Language Features
  • Indirect Draw Commands
  • How to use EGL
  • All the ways to draw stuff – ease of use vs. performance
  • Debugging tools and techniques

I’ll be co-presenting the tutorial with Rudy Cazabon (@RudyCazabon) owner of the Synthetic Aperture blog.  If you’d like to save some money on registration, you can use “Fosner” as a discount code. Follow the updates on Twitter @AnDevCon

Posted in Android, Conferences, OpenGL | Leave a comment

Oculus Rift Musings: Part 1 – Oculus at GDC2014

I’ve played with the initial SDK and unlike some folks I don’t get motion sickness and the lag was barely noticeable. It was a solid 1st effort and I was looking forward to trying out Crystal Cove, Oculus VR’s 2nd gen hardware which I talk about here;

At GDC 2014 I got a chance to try it out. oculusGDC2014

From a recommendation from a friend who works there I played Couch Nights, which is a simple Unreal Engine game about two tiny cartoon knights running around a living room. Using an Xbox controller I was quickly able to quickly to grasp movement and attack, and my “opponent” and I quickly set about destroying the living room before turning on each other and ending the experience. It was a great deal of fun.

couchknights

It was also an order of magnitude better than the original SDK experience and adding in both the changes to the visual display (documented here) plus the HMD tracking puts you into an incredibly immersive experience.

The consumer version will have even better resolution than Crystal Cove, but with the 2nd gen SDK (DK2) not even being available till “summer”, devs will needs at least some lead time to make viable games for the consumer hardware. That said, I’ve already ordered my DK2. I’ve done a lot of 3D real-time interactive development – either data visualization or 3D games – both require low latency and high interactivity. I see the hardware that’s been developed in the last 10 years allowing for some really compelling applications/demos. The one thing that I see as being crucial to the success of any dev platform is the ability to allow the creative independent devs to take it in a new, unforeseen-by-the -original-creators direction – and by this I mean the ability to provide a dev platform that is as unrestricted and open as possible. UDK, Unity, Cocos2d, Android, iOS – all provide a dev platform so that folks who are creative and have an idea can run with it and present it to the masses. Twitter, Instagram, and Waze are all platforms that take advantage of the mass of connectivity that we’ve been blessed with the through the Internet and allow folks to connect up and share information in a way never before possible. I find it extremely compelling and I’m enough of a sci-fi geek to have a good idea where the possibilities are. This is awesome. Let the Metaverse begin!

 

 

 

Posted in Augmented Reality | Leave a comment

OpenGL 3.1 Specs released at GDC

The Khronos Group made a formal announcement at GDC 2014 on the OpenGL-ES 3.1 API specification. It turns out that with the 3.0 spec released late 2014 we’ve been waiting for the hardware to catch up to the API. As hardware started to become available it became apparent that the hardware was much more capable than just what was required for 3.0, but was in fact anticipating some of the OpenGL 4.x feature set. Thus just over a year after the 3.0 API spec was released we’re not only seeing the 3.1 spec released but we actually have actual hardware announcements. OpenGL 3.1 is a superset of 3.0 and is fully compatible with 3.0 and 2.0 programs. The major improvements are;

Compute Shaders: Compute shaders are the big addition to 3.1. They bring the ability to use OpenGL applications for general purpose GPU computing. Where you might normally need to use the CPU to do calculations, you can now take advantage of the massive parallel capabilities of a GPU to offload them onto a faster and more efficient computational engine. Things like physics calculations, AI, post processing effects, ambient occlusion, photographic filtering effects, etc. This alone brings the power of the desktop graphics API to mobile space.

Shader Objects: It’s now possible to mix and match vertex and pixel shaders and also to have pre-compiled shaders – albeit you’ll still need to compile the shaders the first time and store the resulting binaries. This will make it possible to make program loading much much faster by eliminating the compilation and linking steps for the shaders.

An Updated Shader Language: As with the 3.0 spec, the 3.1 spec continues to add some features previously found only on desktop OpenGL and makes it much easier to support more efficient and advanced shader usage.

Indirect Draw Commands:  The ability to submit draw commands from objects in GPU memory rather than have the CPU kick off drawing helps make the pipeline more efficient. Combine this with compute shaders and you can have the GPU computing, updating, and rendering part of the scene itself without any intervention by the CPU.

Enhanced Texture Functionality: Some features from desktop have made it over as well, including mutisampling, stencil textures, texture gather.

There has also been much support for providing a set of conformance tests as well and a standardized shader compiler so that individual vendor’s drivers can now be tested against the ”standard” compiler for conformance. This should help for those situations where some vendors have implemented (or read) the spec differently.

So what’s left out? Tessellation and Geometry shaders are really the two biggest features. Those vendors that are moving their desktop hardware to mobile (Nvidia and Intel) will probably be shipping drivers with extensions for their hardware. Intel is showing off their “PixelSync” extension (which was in their DX drivers) which allows order-independent transparency effects among others.

Posted in OpenGL | Leave a comment

OpenGL @ GDC

There are a bunch of happenings @ GDC regarding OpenGL this year.

The Khronos meetings – OpenGL, OpenGL-ES, & WebGL

Meeting room #262 is located on the West Mezzanine level of the Moscone convention center, just down from the South Lobby and above Halls ABC. Attendees must have a GDC conference or exhibitor pass to attend.

Wednesday, March 19, 2014

OpenGL-ES  – 5:00 PM to 6

OpenGL – 6:00 PM to

Thursday, March 20, 2014

WebGL – 5:00 PM to

 

Tech Talks, Sessions, Courses and Papers at GDC

Massively Parallel AI on GPGPUs with OpenCL or C++

Mon March 17
1:45 PM
Alex Champandard (AiGameDev.com), Andrew Richards (Codeplay)

Avoiding Catastrophic Performance Loss: Detecting CPU-GPU Sync Points

Wed March 19
2:00 PM
John McDonald (NVIDIA)

OpenGL ES 3.0 and Beyond: How To Deliver Desktop Graphics on Mobile Platforms

(Presented by Intel Corp)

Wed March 19
2:00 PM
Chris Kirkpatrick (Intel Corp), Jon Kennedy (Intel Corp)

Getting the Most Out of OpenGL ES

(Presented by ARM)

Wed March 19
3:30 PM
Dave Shreiner (ARM), Tom Olson (ARM), Daniele Di Donato (ARM)

Approaching Zero Driver Overhead in OpenGL

(Presented by NVIDIA)

Thu March 20
1:00 PM
Cass Everitt (NVIDIA), John McDonald (NVIDIA), Graham Sellers (AMD), Tim Foley (Intel)

Bringing Unreal Engine 4 to OpenGL: Enabling High-End Visuals from PC to Mobile

(Presented by NVIDIA)

Thu March 20
2:30 PM
Evan Hart (NVIDIA), Mathias Schott (NVIDIA), Nick Penwarden (Epic Games)
Posted in Conferences, OpenGL | Leave a comment

Sony to announce VR HMD at GDC?

The rumor is that Sony might announce its Oculus competitor at GDC – speculation fueled by two of the presenters (Marks and Mikhailov) who have some experience with new technology and might signal the announcement of a commercial implementation of the HMD prototypes Sony has been showing around. While the Sony device is probably going to be targeted at the PS4 – let’s hope that they 1) price it competitively and 2) publish a multi-platform SDK. I’ve seen many bits of excellent tech die because the parent company wanted to “guide” development when in reality you want the thing to take off like one dollar beer on habañero salsa night. The official entrance of a commercially successful company such as Sony into the VR market seem to be further proof that the market is starting to be a viable one.

Here’s the GDC information;

Driving the Future of Innovation at Sony Computer Entertainment

Location: Room 130, North Hall
Date: Tuesday, March 18
Time: 5:45pm-6:45pm
 
Join Sony Computer Entertainment for a presentation on innovation at PlayStation® and the future of gaming.

 

Posted in Augmented Reality, Hardware, Technology | Leave a comment

VOGL- Valve’s new OpenGL Debugger

At Valve’s Steam Dev Days presentation there was a presentation on their new OpenGL tracer/debugger (VOGL). Debugging OpenGL applications has always been way too hard. You could debug graphics for a while using DX on a Windows machine, but that’s a hard thing to maintain, and eventually it got dropped. I applaud Valve for making the effort to fix this situation.  Somebody needs to step in and fix it if OpenGL is going to get the acceptance and love from the game dev. community it deserves.

Things I like about Valve’s efforts;

  • GL support for 3.x with 4.x planned
  • Extension support
  • Driver benchmarking
  • Open Source
  • Extensive support for trace recording and playback.

Things I’m not so thrilled about;

  • Support for way-old crap (Yes I understand why, but really?) like 1.x support and glBegin/glEnd stuff, fixed function pipeline stuff – blech
  • ASM shader support

And stuff I’m (almost) devastated over

  • Only Linux based (yes, but…)
  • No Android support
  • The focus on existing (read *old*) Valve games and not *new* games. Really – they are already written and out there. Let’s write new games/a new engine. Use Modern OpenGL.

I’m hoping that they will get enough support to correct some of these shortcomings. I know there a re other companies working on similar tech, but Valve is a neutral player – with Open Source support I’m hoping they can create something that will be here in the near future and will march forward as the flavors of OpenGL move on.

Posted in OpenGL | Leave a comment

New Oculus Head Mounted Display Wows them at CES

Oculus VR marches on, WOWing folks at CES that have gotten a chance to  try out their new Crystal Cove 1080p OLED display plus the newly added motion tracking ability courtesy  of the dots embedded in the headset and monitored by an external camera which add in the ability to track the unit in 3-space in addition to the actual HMD’s direction and orientation. Given these improvements plus the already low-latency of the headset have just added to the already excellent user experience of the original SDK and seem  to have eliminated some of the motion-sickness complaints of the original.

From Engadget

From Engadget

OculusVR has raised almost $100 million, has delivered over 50,000 SDKs and has been attracting a lot of attention with some awesome demo’s, some great PC, and some high-level additions to the company. Maybe VR/AR is really here? Back in the day when I was trying out some VR HMDs at Siggraph, they suffered from crappy visual resolution and serious lag. I have a tough stomach, so it was more distracting than annoying, but with the current state of tech OVR (plus the others dog-piling onto VR) might be the tipping point for commercialization of VR.

Posted in Augmented Reality, Hardware, Technology | Leave a comment

CES 2014: OpenGL-ES Working Group plans new version in 2014

An announcement at CES by the Khronos OpenGL-ES Working Group announces the intent to ship a new  version of OpenGL beyond 3.0 in 2014. This version will be backwardly compatible with OpenGL ES 2.0 and 3.0. Not much detail was given, but the features announced were;
  • Compute shaders, with atomics and image load/store capability
  • Separate shader objects
  • Indirect draw commands
  • Enhanced texturing functionality including texture gather
  • multisample textures and stencil textures
  • Enhanced shading language functionality
The new API will not include tessellation or geometry shaders.
Posted in OpenGL | Leave a comment