• Content count

  • Joined

  • Last visited

Community Reputation

209 Neutral

About e3d_ALiVE

  • Rank

Personal Information

  1. Text on top of everything

    [quote name='Mossen' timestamp='1309495735' post='4829888'] Hi I'm new to XNA and I'm just wondering what is the best way to draw 2D text on top a 3D scene. Is this something I can use SpriteFont for? Basically in my main class there is a Draw method: [code] protected override void Draw(GameTime gameTime) { GraphicsDevice.Clear(Color.CornflowerBlue); spriteBatch.Begin(); spriteBatch.DrawString(spriteFont, "Hello world", new Vector2(0.0f, 0.0f), Color.Purple); spriteBatch.End(); base.Draw(gameTime); } [/code] ...but the text is behind my models. And the models are loaded with a ModelManager:DrawableGameComponent: [code] modelManager = new ModelManager(this); Components.Add(modelManager); [/code] which has its own Draw method, so its not like I can just render the text last....because there doesn't seem to be an ordering (that i can see in the code). I'm just looking for a simple solution, doesn't have to be superefficient. What is the best way to do this? [/quote] in order for text to be on top of everything, you must render everyrhing FIRST, only after that should you draw your text
  2. DX11 [DX11] GUI rendering

    there is also anttweakbar http://www.antisphere.com/Wiki/tools:anttweakbar it's free, has dx11 support and may be what u looking for
  3. [quote name='Ripiz' timestamp='1306999537' post='4818561'] Hello. I load my texture using this code:[code] D3DX11CreateTextureFromFileA(device, sFilename, 0, 0, &textureResource, 0); D3D11_SHADER_RESOURCE_VIEW_DESC resourceDesc; resourceDesc.Format = DXGI_FORMAT_UNKNOWN; resourceDesc.ViewDimension = D3D11_SRV_DIMENSION_TEXTURE2D; resourceDesc.Texture2D.MostDetailedMip = 0; resourceDesc.Texture2D.MipLevels = -1; device->CreateShaderResourceView(textureResource, &resourceDesc, &shaderTextureResource);[/code] But I can't seem figure how to get texture size/resolution which I need for interface rendering. Can anyone help please? Thank you in advance. [/quote] [list][*]you have to query ID3D11Texture2D interface from shaderTextureResource,then you have to get description from it with GetDesc[*]if you don't want or don't know how to query, then u may just call GetDesc from textureResource, it will give you D3D11_TEXTURE2D_DESC structure with all the fields(w,h format e.t.c.) that you need[*]you can also call D3DX11GetImageInfoFromFile to retrieve information about the file[/list]
  4. D3D10 Index buffer sizes

    the main perfomance problem is draw call and send call ->set matrix/texture ->draw repeat it might be very efficent to do this select group of objects, that has same texture size create texture2darray from them create matrix array for them[for d3d10 you can see sampe in nvidia blendshapes example, or look at the forum, i posted the code long time ago][for d3d11 level 10 there it's called StructuredBuffer[you only need read only!, no need for UAV][i think you already doing similar stuff anyway] somehow put them into single vertex and index buffer, can be done with d3dxmeshconcatenate i think then in render: set texture array set matrix array[you can set it as shader buffer or as second stream] *set array of indices of which mesh in that big array is visible[frustum culling][kill them in geometry shader+possibility of occlusion integration with HZB] draw batch that method will singificantly reduce draw calls for static geometry[since it can be preprpocessed] for dynamic geometry you gonna be needing ->UpdateSubResource or Better ->Map with discard flag, but it might throttle bandwitdth generall it's better to have less draw cals p.s. with that frustum killing you might restructure you code, so your VS be passthorugh and GS actually executed VS only in case it was't frustum culled, but it's up to you, if you don't have lot's of polygos in frame u don't need it.
  5. D3D10 Index buffer sizes

    there are 2 limitations on creating buffers[whatever they be invex/vertex/texture or just buffer] [list=1][*]IT MUST be aligned to 16, if it's not that creation will fail[*]for d3d10 the buffer ByteWidth or totalsize must be less then 128*1024*1024 aka 128MB[/list]p.s. i'v tested with idea of putting entire mesh into big buffer, it will fit in most cases you can improve perofmrnce by using texture2darray like texture atlas in d3d9 that will singificantly reduce draw calls your send your world matrix much less, if you also put it into buffer, and index to it from shader or you can put it directly via vertex streams specifying flag per instance you should do perfomance tests on your app, but in general reducing complexity of shaders and reducing draw calls is a good idea.
  6. CAudio requres you to put only 2 dlls into your folder, caudio and mp3plugin, + you need to link it with lib file, like that [code] #pragma comment(lib,"caudio.lib") and add that line #include <cAudio.h> [/code] put caudio include files into your search paths or put lib file and caudio files into your source directory after that it's just [code] cAudio::IAudioManager* manager; cAudio::IAudioSource *jumpS; manager = cAudio::createAudioManager(true); jumpS=manager->create("test1","Res/Audio/jump.wav",true); [/code] that's it
  7. if you want a GOOD FREE OpenSource library to play mp3/wav/ogg/flac then try CAudio [url="http://sourceforge.net/projects/caudio/"]here[/url] it already have all dlls and libs, so u don't need to compile any sources it's based on popular crossplatform OpenAL and have no problem working with dx, it also has tutorials and memory manager aside from that it can also record sounds from mic, use special effects[reverb, echo, underwater] and stream audio. now about your problem: PlaySound("blah.wav", NULL, SND_FILENAME); this functions returns true if it can play sound, you need check for that first possible reasons for not playing: application seeks that file in debug foler, while it's located somehwere else, try "../blah.wav" it's wrong wav file[since that api can play only spiecific wav files] try different wav file, for example the file that goes with windows
  8. DXViewer missing DLL

    aside from that it may be possible that u changed something in your manifest settings that screwed it up maybe it's looking for x64 dlls and u give it x86 or inverse
  9. DXViewer missing DLL

    classic error, install VC++ resitributables usually it's 2005/2008 or 2010 they automaticly installs with latest drivers from nvidia/ati and some games
  10. Number of subsets in a ID3DX10Mesh

    usually it's the same as number of materials for that mesh there is also functions to getattributetable, that can tell you exactly what amounts of subsets mesh has and for what vertices each subset is set
  11. Clearing a ID311Buffer

    as alternative to clearing the ID3D11Buffer with 400 elements with type R32_FLOAT for example if it consists of floats and u need to clear them all to 1 [code] std::vector<float> data;//make sure that this thing is aligned data.resize(400); devc11->UpdateSubResource(buffer,&data[0]); [/code] as alternative u can map it with discard and clear there
  12. here's the ways: [list=1][*]shader way: either with one shader[using some basic math to skip the middle] or with two shaders, one for high black bar and the one for lower[*]good old way: map texture with discard flag, fill the black bars on cpu and then unmap[*]naive method: just create alphamap with blackbars and merge it with your texture with alpha mapping[in shader or in fixed pipeline][/list]unless ur directx shader version is below 2.0 go with first method
  13. DX11 DirectX11 Books...

    there is also Introduction to 3D [url="http://en.wikipedia.org/wiki/Game_Programming"]game programming[/url] with DirectX10.0" by Frank Luna there currently no dx11 books, but u can adapt stuff from dx10 books or wait untill dx11 book is released
  14. DX11 D3DX11 and tga

    or you can load it with FreeImage here's a snippet how to do it http://pastebin.com/40BV7vV0 don't mind e3d_Std it's just log functions
  15. hello i'm trying to copy single mip level from texture(R32_FLOAT) with many mip levels(10) into structured buffer(sizeof(float)*Width*Height). Is there any way to do it, except custom map/unmap? Is indexing structured buffer in compute shader faster then by simply calling load? i got these errors D3D11: ERROR: ID3D11DeviceContext::CopySubresourceRegion: When offset by the destination coordinates, pSrcBox does not fit on the destination subresource. OffsetSrcBox = { {0, 0, 0}, {200, 150, 1} }. DstSubresource = { {0, 0, 0}, {1920000, 1, 1} }. [ RESOURCE_MANIPULATION ERROR #280: COPYSUBRESOURCEREGION_INVALIDSOURCEBOX ] D3D11: ERROR: ID3D11DeviceContext::CopySubresourceRegion: Cannot invoke CopySubresourceRegion when the Formats of each Resource are not the same, or castable to each other, unless GetFeatureLevel() returns D3D_FEATURE_LEVEL_10_1 or greater. [ RESOURCE_MANIPULATION ERROR #281: COPYSUBRESOURCEREGION_INVALIDSOURCE ]