Jump to content

  • Log In with Google      Sign In   
  • Create Account


Member Since 28 Oct 2012
Offline Last Active Jun 23 2014 03:28 AM

Topics I've Started

Multiple projection matrices

22 June 2014 - 11:49 AM



I am creating an application with multiple viewports. I was researching methods as to how I could store multiple projection matrices and all I found was the glPushMatrix and glPopMatrix functions which don't seem to be adequate for what I need (although I may be wrong). Would computing the individual projection matrices each frame give a large performance loss? If so then what method can I use to store and recall them? If I have to use the aforementioned functions then could I please have an example of the implementation. I understand that the projection matrix stack can store a maximum of two matrices on some hardware. How would I circumvent this? Thanks.

Render to texture efficiency

09 June 2014 - 01:06 PM



I am working on creating a level editor that contains 4 unique views (3 plan views and 1 3D view). I was thinking that rather than lots of context switching to update all 4 views simultaneously I could partition a single window and have all draw calls mapped to 4 textures, that could then be mapped to the relevant parts of the window. I have a few questions:


1. Is it possible to do this and make it look correct?

2. Is swapping between textures any faster than swapping between windows?

3. Is there a better way to do this than those I have suggested?


Thanks in advance.

GPU packet sizes way too large

10 April 2014 - 03:33 PM



I had noticed a very large frame rate drop in my application recently so I downloaded the Microsoft GPU View tool and after close analysis it appears that the packets being submitted to the GPU are far too large. My application is quite simple so it does pretty much the same work each frame and a regular packet is 3100 bytes and a present packet is 131,072 bytes in size. Seeing as a regular packet from World Of Warcraft is only 472 bytes in size I think I am doing something seriously wrong here.


Here is a list of the stuff I do each frame:


 - Map + unmap and update constant buffers with the per model data (1 matrix)

 - Bind relevant vertex, index buffers, textures

 - Bind relevant shader

 - Bind the input layout attached to the shader

 - Render using DrawIndexed


Of course, I could be completely wrong in thinking the slow down is to do with packet sizes but it seems to be the only possible cause. Does anyone know of a particular factor that could cause the packet sizes to become much larger?

Texture facing wrong way

14 March 2014 - 03:32 PM



I am trying to load a model from my custom data format but the face texture is the wrong way around (see image). As you can see all the other textures are the correct orientation but the face shows the black canvas that should be at the back of the head rather than the face. Does anyone have any idea why this could be happening? Thanks in advance for any replies.


EDIT: The model is exported from Blender 3D. I negated the texture V coordinate and changed the vertex input order from x, y, z to x, z, y. I am using D3D11_CULL_FRONT with FrontCounterClockwise set to false.



Finding constant buffer data requirements

26 January 2014 - 03:18 AM



I'm trying to write a system where the engine can find what data requirements any given constant buffer has and then supply that data in the correct order to the shader. Is there a way to find this information using Direct3D 11 that would be practical for game engine use? Thanks.