Jump to content

  • Log In with Google      Sign In   
  • Create Account

Banner advertising on our site currently available from just $5!

1. Learn about the promo. 2. Sign up for GDNet+. 3. Set up your advert!


Member Since 19 Mar 2007
Offline Last Active Today, 03:24 AM

#5216408 Help with parsing Maya obj files

Posted by Amr0 on 14 March 2015 - 03:07 AM

Also, check out my super awesome cool excellent superb not-just-maya-but-also-zbrush-and-more obj loader here: http://code-section.com/entry/13/cdx9-obj-loader-sample

#5214830 UE4-like shaders from materials (theory)

Posted by Amr0 on 05 March 2015 - 03:26 PM


Has anyone tried to implement similar system?


I have. It's a very intuitive way to work with shaders. The beauty of this is that you can design your nodes and shader structure such that the artists/users can customize exactly what you want them to customize, while maintaining control over the underlying structure of the shader, as opposed to generating the entire shader code only from nodes and requiring users to hook certain nodes in certain ways.


I am planning to work more on the system and release it as middleware for game developers so they can integrate it in their editors/pipeline/engines. Unfortunately I'm busy with another project currently. Here is a screenshot:




Some shader parameters can be dynamic and some can be "static". Changing a static parameter will require recompiling the shader, thus resulting in a new permutation of the shader. Another beauty of this system is makes it easier to create a platform-independent shader solution.

#5206570 Impossible to Detect Window Starting Unfocused? (Windows)

Posted by Amr0 on 25 January 2015 - 11:51 AM

My advice is not to worry too much about it - if memory serves, I've noticed this behavior in many titles. You start the game, nothing seems to happen, you click on something and then the cursor disappears. Users will know to alt-tab back to your game and then out to regain the mouse. But to lock the mouse to the center and hide it, you'd better do it after you capture the mouse, and you'd better stop messing with the mouse when mouse capture is lost. Windows will not let a background process capture the mouse, so maybe if you do it like that, users will not lose the mouse at all.


I'd leave it alone and maybe come back to it when the game is almost ready to ship. One thing you can do is load the "waiting" cursor at game start and restore the arrow cursor when loading is finished. That way, users will know the game is starting up and hopefully they will wait.

#5166011 Having a problem getting data from .obj file to render (index / Vertex buffer...

Posted by Amr0 on 10 July 2014 - 08:05 AM

Also, check my dx9 c++ obj loader sample if you'd like: click

#5162352 Visual Programming

Posted by Amr0 on 23 June 2014 - 10:12 AM

I love visual programming, and I think it can be a very empowering tool in certain cases, like empowering artists to create rather complex logic and complex shaders when designing levels and assets. But I don't think it would be easy to use it for general programming. One idea that comes to mind about how this can be achieved is by exposing the majority of the API of an operating system, like the Windows API, to the nodes system and allowing users to create a program using those node.


Anyway, I worked for a while on such a system for creating hardware shaders, but it is still not finished, and I put it on hold. I am intending to pick it up again. Here is a screeny :)



#5157506 Ungoogleable game names

Posted by Amr0 on 02 June 2014 - 04:21 AM

Just to add an example, there was a few years ago footage on gametrailers of a AAA first person shooter called "They"... and I remember thinking immediately about its ungoogability. The game is no longer in development by the way.

#5121964 3D Lines with directx

Posted by Amr0 on 07 January 2014 - 12:56 PM

Volumetric lines?


#5121696 scripting and unity3D

Posted by Amr0 on 06 January 2014 - 01:51 PM

Given your username and your excitement about the tutorials having a stealth project, I think I can guess what kind of project you'll be working on, taffer...

#5079805 Win32 Window Resizing Issue

Posted by Amr0 on 23 July 2013 - 03:30 AM

Why are you terminating the process manually on WM_DESTROY? You're already returning from WinMain() when the window gets destroyed.


Anyway, what Khatharr said. If you set the background brush in your window class to a specific brush, it will automatically be used to draw inside the window when it gets resized. For example, use GetStockObject( BLACK_BRUSH ) or GetStockObject( WHITE_BRUSH ).

#5065174 [Win32] Addresses

Posted by Amr0 on 27 May 2013 - 01:54 AM

No, Windows does not offer you access to the address of the internal variables it uses to implement the functionality of the various controls. That's a good thing, as some of these may correspond directly to internal variables, while others are probably inferred and are calculated based on other variables. Even strings are returned by copying rather than by addresses. You can always just retrieve the value at the beginning of a function and cache it for the rest of the function.

#5061464 C++ 2d Game engine

Posted by Amr0 on 13 May 2013 - 02:46 AM

Look into HGE. I haven't used it myself, but it seems like what you need, and it seems to be good.

#5059730 why should direct2d program delete WNDCLASSEX's hbrBackground statement

Posted by Amr0 on 06 May 2013 - 07:15 AM

The background brush of the window class is used by the default message processor to repaint the background in response to WM_ERASEBKGND. If you are doing all your painting in WM_PAINT, or continuously in the render loop, then yes, you will not need a background brush. Note that if you use GetStockObject( BLACK_BRUSH ) to set the brush of the window class, then you won't need to delete the brush, because stock objects are shared between apps.


but why in almost every example, direct2d always renders in WM_PAINT and direct3d renders when no message processing


Well, it depends on how you want your application to behave, it has nothing to do with the application using D2D or D3D. If you want the application to render continuously, then you do all the rendering in the message loop when there are no messages. This is used when the contents displayed by the application is dynamic and changes frequently. If the contents change only when the user does something to change it (like painting programs for example), then the application will update its display only when needed, and in response to WM_PAINT.

#5059675 laser/electric effect

Posted by Amr0 on 06 May 2013 - 02:10 AM

They are also called volumetric lines sometimes. There was an NVidia paper about them, and I had written a C++ DX9 sample based on it. The sample is here, and the paper is in the Nvidia SDK here (search for volume lines).

#5057418 Capturing Win32 Mouse Repeat Events

Posted by Amr0 on 28 April 2013 - 02:01 AM

Windows will only send a single message when a mouse button is pressed and held, but it will send multiple (repeat) WM_KEYDOWN messages when a key on the keyboard is pressed and held. So yes, your scrollbar widget will have to use timers (or some other mechanism for performing an action with a certain frequency) to mimic the standard scrollbar behavior. But using Windows' timers is not difficult at all, so I don't see why you would want to avoid them.

#5057050 Coloured Light Maps

Posted by Amr0 on 26 April 2013 - 01:03 PM

You are multiplying red by green, so it's 0.