Jump to content

  • Log In with Google      Sign In   
  • Create Account

imoogiBG

Member Since 16 Jan 2011
Offline Last Active Today, 07:19 AM

#5187439 dynamic branching in GPU

Posted by imoogiBG on 16 October 2014 - 11:40 AM

Post links to those threads for googlers/bingers/search results




#5185175 Lines of code language comparisons

Posted by imoogiBG on 05 October 2014 - 03:01 PM

 

you cant write Braid in java.

 

Braid is a game like any other. I can assure you that you can write it in java. But that wasn't the point of my topic.

 

You're taking my word out of topic.

 

You've missed :  

it wont work on xbox



#5185124 Lines of code language comparisons

Posted by imoogiBG on 05 October 2014 - 08:58 AM

 

One reason behind this question is something I heard from John Blow in one of his videos, that he wrote Braid in roughly 90000 lines of code. But how many characters is there in a "line of code"? and how many lines of code would it be if some other language was used (I believe Braid was written in C or C++). Because if I can write Braid in, say, 60k lines of code in Java, then that means that I could add another 30k lines of additional content if 90k lines was the launch goal I wanted to reach.

 

 

Especially this :

then that means that I could add another 30k lines of additional content if

 

 

Dude you don't have ANY limit on how many lines you can write. Also you are not taking in account how much time you have to spent understanding/writing one line. Those measurements are dumb as hell and totally pointless. + you cant write Braid in java. it wont work on xbox(for example).
 

And one final thing (obviously my OWN opinion) : I really like Braid and i applaud J. Blow for his huge success, but i think that his ideas for that new programming language sucks.




#5183088 DirectX renderer painting over child window

Posted by imoogiBG on 26 September 2014 - 03:42 AM

Try WS_CLIPCHILDREN on the parent window




#5176524 Abstract away the API?

Posted by imoogiBG on 27 August 2014 - 04:15 PM

In practice it is not that simple.

 

I'm wrapping D3D11 and GLES. And it is not that easy because:

 

A texture in GLES means:

a texture data + sampler state, which is directly bound able to the pipeline. 

 

A texture in D3D11 means:

the texture resource itself without any sampler state or information how you can bind the resource to the pipeline

 

Another difference is the way you bind it:

in OpenGL textures are bound as if is a regular uniform(keep in mind the sampler). in D3D11 Textures are bound to a specific slot for a specific shading stage. You have to manually crate a sampler and bind it to the proper location.

 

My advice is :

Do not blindly try to implement an abstraction, you need to know very all all the APIs that you want to use.




#5176389 Directx 11 instancing

Posted by imoogiBG on 27 August 2014 - 03:55 AM

I suggest you to use Tutorial2 code http://code.msdn.microsoft.com/windowsdesktop/Direct3D-Tutorial-Win32-829979ef/view/SourceCode#content and extend it.

After you get it working search for differences.




#5176200 Directx 11 instancing

Posted by imoogiBG on 26 August 2014 - 09:07 AM

I cannot quite remember but i think that it should be:

{ "INSTANCEPOS", 0, DXGI_FORMAT_R32G32B32A32_FLOAT, 1, 0, D3D11_INPUT_PER_INSTANCE_DATA, 1 },
{ "INSTANCEPOS", 0, DXGI_FORMAT_R32G32B32A32_FLOAT, 1, 16, D3D11_INPUT_PER_INSTANCE_DATA, 1 },
{ "INSTANCEPOS", 0, DXGI_FORMAT_R32G32B32A32_FLOAT, 1, 32, D3D11_INPUT_PER_INSTANCE_DATA, 1 },
{ "INSTANCEPOS", 0, DXGI_FORMAT_R32G32B32A32_FLOAT, 1, 48, D3D11_INPUT_PER_INSTANCE_DATA, 1 }

 

I havent look in depth...




#5174562 So... C++14 is done :O

Posted by imoogiBG on 18 August 2014 - 04:13 PM

Any hope/wish/desire for the next standard?

Compile time reflections (and being able to process them)




#5170078 DirectXMath Calling Convention

Posted by imoogiBG on 29 July 2014 - 09:36 AM

XMVECTOR DOES NOT represent a mathmeatical vector (it is a coincidence that is could be used to represent a 4D vector).
When you call 
XMVector3Lenght for example, the functions will assume that its argument is 3D vector(in terms of mathematics). In terms of program it is a special SIMD type.
 

FXMVECTOR is a typedef of XMVECTOR

On some platform. Open DIrectXMath.h and see for yourself

// Fix-up for (1st-3rd) XMVECTOR parameters that are pass-in-register for x86, ARM, and Xbox 360; by reference otherwise
#if ( defined(_M_IX86) || defined(_M_ARM) || defined(_XM_VMX128_INTRINSICS_) ) && !defined(_XM_NO_INTRINSICS_)
typedef const XMVECTOR FXMVECTOR;
#else
typedef const XMVECTOR& FXMVECTOR;
#endif

On platform A we should use XMVECTOR& because this is how its SIMD workflow works.

On platform B we should use XMVECTOR because this is how its SIMD workflow works(windows for example). There is a specific __vectorcall functions modifyer what will help you in that specific scenario.




#5166927 Dx11 math and matrices

Posted by imoogiBG on 15 July 2014 - 01:41 AM

"Row-major transforms" are there becase of legacy, and (at least for me) they are much more intuitive. unfortunatly im forced to use column major sad.png

.




#5166279 Giving interviews while already in a job

Posted by imoogiBG on 11 July 2014 - 01:22 PM

- Does it look bad giving interviews while already working? I mean, can you give the impression of someone who could leave a company almost "out of the blue" ?

This is the usual way how you find another job. I did that, everyone are doing this, they know that you're doing this it is normal.

- Looking at your CV, they'll obviously notice that you're working already. What if they ask you WHY do you want to leave? I'm pretty sure this would be a tricky question to answer,

Give them your reasons, tell them why you don't want to work there anymore. They may ask you "why do you think it wont happen again with us". If they are not OK with your 

requirements you're good, because at the end of the day you don't want swap one bad thing for another.

 

If you're risking with that company(you have no idea if the same problems will occur again, but you want to try) I cannot give you a good advice, just be careful.




#5165470 Grass Rendering Questions

Posted by imoogiBG on 08 July 2014 - 01:07 AM

Please post WIP images. I love grass fields!




#5165051 FBX and Skinned Animation

Posted by imoogiBG on 06 July 2014 - 09:03 AM

There were several topics on this.

I've tried to create an article but because I'm a lazy bas*ard, the article isnt finished: http://www.gamedev.net/topic/646588-scene-graph-fbx-and-stuff/

It is a total crap(don't directly use it) but the basic idea is explaned. 

 

To obtain all the keyframes and transforms for a node :

 

1) I use the AnimLayer to obtain the keyframes for the node. There MUST be a better way to do this!

 

2) Use the scene evaluator to obtain the *flattened* node transform for each key frame.

for each key frame do :
FbxAnimEvaluator* pEvaluator =  m_pFbxScene->GetEvaluator();
transformData = pEvaluator->GetNodeLocalTranslation/Rotation/Scale(CurrentNode, KeyFrameTime);

PS:

 

As said above:

 The FBX SDK on the other hand is a box of crazy and drives me insane.

biggrin.png




#5164031 Variance Shadow Map fades when shadow is close to occluder

Posted by imoogiBG on 01 July 2014 - 06:58 AM

guessing that might be light bleeding or small map size?
http://http.developer.nvidia.com/GPUGems3/gpugems3_ch08.html

 

Ignore that comment




#5164018 OpenGL to DirectX. Constant buffers.

Posted by imoogiBG on 01 July 2014 - 04:07 AM

If it is urgent and you don't need the performance gain from cbuffers, you can still use them in the old fasion way(aka. you can fake separate uniform binding)

 

in HLSL

Declare your uniforms as global scope variable, they will be part of the implicitly created constant buffer .

When you Call D3DReflect this function will return the layout of the created cbuffer, its bind slot(should be always the same in that specific case) ect.

 

Create one large enough cbuffer for each shader type. This so all vertex shaders will use that cbuffer and so on for each shader type. When you call your function that updates the uniforms you will update the cbuffer storage behind the scenes.

Also you will have to merge the uniform names and the buffers because in OGL you bind uniforms per program in d3d you bind uniforms per shader stage.

 

Another thing that will cause you headaches is the sampler and texture binding!

 

Hope that will help

 

EDIT:

Another thing that will cause you headaches is the sampler and texture binding!

I've actually cheated here. http://www.opengl.org/wiki/GLAPI/glBindSampler

There are sampler state objects in OGL 






PARTNERS