Forum Replies Created
I’m glad you like the book! I have a proposal cooking right now for a second book that would include a deep dive on space partitioning and scene management. No word yet on the “when”, but that plan is percolating.
I also have a proposal in for a second video series on DirectX development. DirectX Essentials LiveLessons was just published this week and it covers the first two parts of the book. A second video series would cover the last two parts of the book and include a lesson on Multi-Platform DirectX development (Win32, Windows 8.1, Windows Phone 8.1, and Xbox One). No definitive timing on those videos either, but that’s also in the works.
To your second question, the software services pattern is formal known as the “Service Locator” pattern. It’s the exact opposite of dependency injection.
The Visual Studio 2013 Shader Designer is quite different from NVIDIA FX Composer and has (to my knowledge) no similarity to anything within NVIDIA Nsight. The VS 2013 Shader Designer is a visual editor that’s graph-node based. You make connections between nodes to control the shader’s output. The end result is generated HLSL.
Glad you’ve enjoyed the OpenGL videos, sorry you’re having shader compilation trouble. GLSL shader compilation happens in the driver, so the likely answer to your question is that the driver has better support for OpenGL 4.3 than 4.4.
I looked up that particular driver, and AMD’s website states that it fully supports 4.4 but…
This isn’t an uncommon problem — that mileage varies with OpenGL implementations — and is an oft-cited complaint. That said, my code is certainly not above reproach, so if anyone can isolate a problem I’ll gladly admit my failure.
- This reply was modified 3 years, 7 months ago by Paul Varcholik.
I think smart pointers are great. While I’ve only made superficial use of them in the book, I have an upcoming series of DirectX videos that make extensive use of smart pointers.
I don’t believe the effort is terribly large. It’s mostly a matter of replacing pointer declarations and explicit use of “new”. And if you still need access to the underlying raw pointer, you can use the get() accessor.
As to the benefits, there are several. You no longer have to explicitly delete your heap-allocated memory. This helps prevent memory leaks. Furthermore, your smart pointers still free their memory if a code block exits prematurely (e.g. an exception is fired).
There are myriad resources on this topic, including this one from InformIT.
It’s unclear to me why NVIDIA states that Nsight is a replacement for FX Composer. It’s does have editing capability, but not visualization. While that tool is absolutely fantastic at profiling and debugging, it’s no more an authoring/visualization tool than any text editor.
Nsight’s editing capability allows you to modify a shader while debugging — which is extremely cool. But I know of no visualization features within Nsight.
If you’re a Windows 8.1 user, the latest version of FX Composer won’t function. However, a previous version does.
Thanks for the report. It was simply an oversight not to mention the Utility class. As you stated, you will find it on the book’s source repository.
Note, that it uses Shlwapi.lib, which I also failed to mention in the text.
I’ll add this issue to the book’s errata site.
I’ve run the OpenGL Reference Compiler against all of the shaders in the lessons. Aside from warnings that the reference compiler doesn’t fully validate all 4.3 and 4.4 features, all of the shaders compile properly. That implies that the error is within the driver.
I don’t think my friends at AMD would appreciate me stating that NVIDIA cards or drivers support OpenGL better 🙂 But, it sounds like a driver issue. I’m going to pass this error along to dig a bit deeper. To that end, what specific version of the driver are you running and on what platform (e.g. Windows 7, 8, 8.1, 32-bit or 64-bit)? Version 14.4 is the latest for according to AMD’s driver site.
Strange. The xbf_offset qualifier is about Transform Feedback, which I’m not using anywhere in the lessons. I suspect it’s a driver issue, what flavor of graphics card are you running?
Additionally, is this the stock code from the lesson? Or have you modified it in some way?
Beyond that, my first suggestion is that (just for the sake of diagnosing the problem) you drop the GLSL shader version from 440 to something before OpenGL 4.0 (when Transform Feedback was introduced). For example #version 330 core.
PaulApril 25, 2014 at 12:37 pm in reply to: please upload project files of OpenGL Essentials Live Lessons #179
Thank you for the heads up. The source should have been linked off of the Safari Books Online/InformIT sites. My editor is working on fixing that at this very moment. Independent of the existence of such a link, I’ve hosted the source code on bitbucket at:
Thanks for your interest. Shout if you have any questions.