• Announcements

    • khawk

      Download the Game Design and Indie Game Marketing Freebook   07/19/17

      GameDev.net and CRC Press have teamed up to bring a free ebook of content curated from top titles published by CRC Press. The freebook, Practices of Game Design & Indie Game Marketing, includes chapters from The Art of Game Design: A Book of Lenses, A Practical Guide to Indie Game Marketing, and An Architectural Approach to Level Design. The GameDev.net FreeBook is relevant to game designers, developers, and those interested in learning more about the challenges in game development. We know game development can be a tough discipline and business, so we picked several chapters from CRC Press titles that we thought would be of interest to you, the GameDev.net audience, in your journey to design, develop, and market your next game. The free ebook is available through CRC Press by clicking here. The Curated Books The Art of Game Design: A Book of Lenses, Second Edition, by Jesse Schell Presents 100+ sets of questions, or different lenses, for viewing a game’s design, encompassing diverse fields such as psychology, architecture, music, film, software engineering, theme park design, mathematics, anthropology, and more. Written by one of the world's top game designers, this book describes the deepest and most fundamental principles of game design, demonstrating how tactics used in board, card, and athletic games also work in video games. It provides practical instruction on creating world-class games that will be played again and again. View it here. A Practical Guide to Indie Game Marketing, by Joel Dreskin Marketing is an essential but too frequently overlooked or minimized component of the release plan for indie games. A Practical Guide to Indie Game Marketing provides you with the tools needed to build visibility and sell your indie games. With special focus on those developers with small budgets and limited staff and resources, this book is packed with tangible recommendations and techniques that you can put to use immediately. As a seasoned professional of the indie game arena, author Joel Dreskin gives you insight into practical, real-world experiences of marketing numerous successful games and also provides stories of the failures. View it here. An Architectural Approach to Level Design This is one of the first books to integrate architectural and spatial design theory with the field of level design. The book presents architectural techniques and theories for level designers to use in their own work. It connects architecture and level design in different ways that address the practical elements of how designers construct space and the experiential elements of how and why humans interact with this space. Throughout the text, readers learn skills for spatial layout, evoking emotion through gamespaces, and creating better levels through architectural theory. View it here. Learn more and download the ebook by clicking here. Did you know? GameDev.net and CRC Press also recently teamed up to bring GDNet+ Members up to a 20% discount on all CRC Press books. Learn more about this and other benefits here.


  • Content count

  • Joined

  • Last visited

Community Reputation

107 Neutral

About ozkill

  • Rank
  1. thank you for reply. but i understand why that error happen. I want to know why this error does not appear with D3DXSHADER_ENABLE_BACKWARDS_COMPATIBILITY flag. i want to know correlation between error X3025 and ps_1_x.
  2. Hi. i tried to compile shader effect. and i met error "error X3025: global variables are implicitly constant, enable compatibility mode to allow modification" but when i try to compile with flag D3DXSHADER_ENABLE_BACKWARDS_COMPATIBILITY, works well. If i use this flag, no error and no trouble. When i googling, can find many same troubles and same solutions. Well... OK. however it's works. but i confused. according to MSDN, D3DXSHADER_ENABLE_BACKWARDS_COMPATIBILITY flag compile to higher level than ps_1_x. that's all. it just control shader level. But as a result, It really be involved in semantic and syntax. Why this happen? Moreover, I never use ps_1_x. Why Why Why Why this happen? thank you.
  3. thank you all !!!!!!! god bless you
  4. Hi. Sorry for my poor english. I try to make Render Target for DXT1 format. [code]pD3DDevice->CreateTexture( 512, 512, 1, D3DUSAGE_RENDERTARGET, D3DFMT_DXT1, D3DPOOL_DEFAULT, &pTexture, NULL)[/code] but It not work. show error message as: [code]Direct3D9: (ERROR) :Invalid format specified for texture[/code] Is impossible to make DXT1 Render Target? I want to save Render Target image to file as DXT1 format. Waht can i do? May the force be with you :-)
  5. Hi, I have a question about bottleneck. Is it differ Input assembly bottleneck from Attribute bottleneck? And, Is it depend on vertex count? God bless you.
  6. Hi. Sorry for my poor english. I know morden GPU works by Unified pipeline. but i don't know apply to DX9. How about that? Is that Unified Pipeline works automatically in DX9?
  7. hello guys~ I need your help for my recently work. plz give me a tip. :-) sorry about my poor english. I attempted to write two values( Diffuse;lit and Illumination;add) at one 64bit unsigned Render Target(D3DFMT_A16B16G16R16) in DX9. for each two value assign to 8bit. and save to one channel. It's possible 'cause It's Unsigned 16 bit per component of RGBA. I use multiplication or division by 256 as Bit Shift. Because Can't use Bit Operator( << and >>) at DX9. === HLSL code of Write pass: === // Convert to 0~255 Unsigned Int // 00000000 CCCCCCCC int3 vDiffuseUint = output.color.rgb * 255.0f; vDiffuseUint = clamp( vDiffuseUint, 0, 255); // Bit Shift // CCCCCCCC 00000000 vDiffuseUint *= 256; // 00000000 AAAAAAAA int3 vAddUint = vAdd * 255.0f; vAddUint = clamp( vAddUint, 0, 255); // Accumulate // CCCCCCCC AAAAAAAA int3 vCompressedUint = vDiffuseUint + vAddUint; // Convert to 0~1 float OutPut = (float3)vCompressedUint / ( 65535.0f); === HLSL code of Read pass: === // Comvert to unsigned Int // CCCCCCCC AAAAAAAA int3 vReadColorUint = saturate(vReadColor) * ( 65535.0f); // Bit Shift // 00000000 CCCCCCCC int3 vDiffuseUint = vReadColorUint / 256; // Bit UnShift // CCCCCCCC 00000000 int3 vDiffuseUintUnShift = vDiffuseUint * 256; // Get AddClr // CCCCCCCC AAAAAAAA // - CCCCCCCC 00000000 // = 00000000 AAAAAAAA int3 vAddUint = 0; vAddUint = vReadColorUint - vDiffuseUintUnShift; // convert to float. and use this value as result OutPut. vReadColor = (float3)vDiffuseUint / 255.0f; vAddColor = (float3)vAddUint / 255.0f; It works!!!!!! Pretty good. but damn Geforce 7600 T_T. Error in Geforce 7xxx and lower model. I'll try to check Radeons. Fundamentally, Why this happen?!?! Why symptoms are different for each H/W? How can i scan standards( Caps, Query, and so on...)? Give me a piece of hint please. God bless you. [Edited by - ozkill on December 30, 2010 6:45:51 AM]
  8. dear MJP. very very thank your answer. Is this just demonstration? Damn... That page make me confused talk like it possible. your says give me belife what to do. and your post "inferred rendering" at blog is very useful to my work. very thank. bless u :-) [Edited by - ozkill on March 18, 2010 8:37:22 PM]
  9. dear JohnnyCode. Really really Thank for yor answer. but, It is not the appropriate answer to my question. I guess you have misunderstood my question. My intent was not "How to use Vertexdeclaration to maching with Shader" I knew that Vertexdeclaration and Shader Usage should match. That is why I have doubts. I have been using to only one Declaration pair with Shader. and I have no problem of H/W instancing use method of "Instancing " in DX sample (March 2009) but "Efficiently Drawing Multiple Instances of Geometry (Direct3D 9)" in DX document show peculiar way. This is link : http://msdn.microsoft.com/en-us/library/ee418549%28VS.85%29.aspx They make duble D3DVERTEXELEMENT9 instance. one is information of stream 0 (g_VBDecl_Geometry). and other one is information of stream 1 (g_VBDecl_InstanceData). but, For H/W Mesh instancing, Both g_VBDecl_Geometry and g_VBDecl_InstanceData is needed all at once 'cause It need stream 0 and 1. I put stream data 0 and 1 in a D3DVERTEXELEMENT9 instance was used. It works... But document show way use two Declaration instance. My wondering is How this possible. How to set duble D3DVERTEXELEMENT9 instance to Device? Does they lie to me? Please advise. plz plz plz ...
  10. hi gentleman :-) at first, sorry to my bad english. I have a dilemma by improving my H/W instancing. help me plz.... I have a success of Mesh instancing as "Instancing " in DX sample (March 2009) but, I have a problem of Mesh instancing as "Efficiently Drawing Multiple Instances of Geometry (Direct3D 9)" in DX helper document. http://msdn.microsoft.com/en-us/library/ee418549%28VS.85%29.aspx Both method are not perfect exactly the same. Vertex Declaration is different. "Instancing " in DX sample (March 2009) - define one declaration variable. and split inside by stream. D3DVERTEXELEMENT9 g_VertexElemHardware[] = { { 0, 0, D3DDECLTYPE_FLOAT3, D3DDECLMETHOD_DEFAULT, D3DDECLUSAGE_POSITION, 0 }, { 0, 3 * 4, D3DDECLTYPE_FLOAT3, D3DDECLMETHOD_DEFAULT, D3DDECLUSAGE_NORMAL, 0 }, { 0, 6 * 4, D3DDECLTYPE_FLOAT2, D3DDECLMETHOD_DEFAULT, D3DDECLUSAGE_TEXCOORD, 0 }, { 1, 0, D3DDECLTYPE_FLOAT4, D3DDECLMETHOD_DEFAULT, D3DDECLUSAGE_TEXCOORD, 1 }, { 1, 4 * 4, D3DDECLTYPE_FLOAT4, D3DDECLMETHOD_DEFAULT, D3DDECLUSAGE_TEXCOORD, 2 }, D3DDECL_END() }; - And set Declaration this(g_VertexElemHardware) to Device - I imitate this way. It run well. "Efficiently Drawing Multiple Instances of Geometry (Direct3D 9)" in DX helper document - define two declaration variables. const D3DVERTEXELEMENT9 g_VBDecl_Geometry[] = { {0, 0, D3DDECLTYPE_FLOAT3, D3DDECLMETHOD_DEFAULT, D3DDECLUSAGE_POSITION, 0}, {0, 12, D3DDECLTYPE_FLOAT3, D3DDECLMETHOD_DEFAULT, D3DDECLUSAGE_NORMAL, 0}, {0, 24, D3DDECLTYPE_FLOAT3, D3DDECLMETHOD_DEFAULT, D3DDECLUSAGE_TANGENT, 0}, {0, 36, D3DDECLTYPE_FLOAT3, D3DDECLMETHOD_DEFAULT, D3DDECLUSAGE_BINORMAL, 0}, {0, 48, D3DDECLTYPE_FLOAT2, D3DDECLMETHOD_DEFAULT, D3DDECLUSAGE_TEXCOORD, 0}, D3DDECL_END() }; const D3DVERTEXELEMENT9 g_VBDecl_InstanceData[] = { {1, 0, D3DDECLTYPE_FLOAT4, D3DDECLMETHOD_DEFAULT, D3DDECLUSAGE_TEXCOORD, 1}, {1, 16, D3DDECLTYPE_FLOAT4, D3DDECLMETHOD_DEFAULT, D3DDECLUSAGE_TEXCOORD, 2}, {1, 32, D3DDECLTYPE_FLOAT4, D3DDECLMETHOD_DEFAULT, D3DDECLUSAGE_TEXCOORD, 3}, {1, 48, D3DDECLTYPE_FLOAT4, D3DDECLMETHOD_DEFAULT, D3DDECLUSAGE_TEXCOORD, 4}, {1, 64, D3DDECLTYPE_FLOAT4, D3DDECLMETHOD_DEFAULT, D3DDECLUSAGE_COLOR, 0}, D3DDECL_END() }; - How set duble different Declaration to Device??? - If I set g_VBDecl_Geometry to Device use SetVertexDeclaration, then show message fllow: - "Vertex shader function usage does not have corresponding usage in the current vertex declaration" What can i do for second case? How set duble different Declaration to Device? I got a define two declaration variables split by stream. Help me ToT lol [Edited by - ozkill on March 18, 2010 11:25:04 AM]
  11. Hi. happy X-mas I use deferred lighting( use pre-lighting pass). so, I draw grass, tree leaf, hair and ETC.. as billboard use Alpha Test. but On ATI radeon X1950, not running Alpha Test to FP Render Target. I have no choice. Guess I do must texkill use clip(alpha-x) in HLSL instead of Device Alpha Test. I have one question. Which of the two is the better performance? Turn off Alpha Test of Device and use texkill(clip) in Shader? Only use Alpha Test of Device(D3DRS_ALPHATESTENABLE)? I must use Eary-Z cull. bear no relation to about this?
  12. why not? :-D m_pd3d->GetDeviceCaps(D3DADAPTER_DEFAULT , D3DDEVTYPE_HAL , &m_d3dcaps ); ... // get screen information HRESULT hr; hr=m_pd3d->GetAdapterDisplayMode( D3DADAPTER_DEFAULT, &m_d3ddm ); ... DWORD BehaviorFlags=D3DCREATE_FPU_PRESERVE | (QueryFeature(RQF_HARDWARETNL) ? D3DCREATE_HARDWARE_VERTEXPROCESSING : D3DCREATE_SOFTWARE_VERTEXPROCESSING); D3DDEVTYPE d3dDevType = D3DDEVTYPE_HAL; BehaviorFlags |= D3DCREATE_PUREDEVICE; ... UINT AdapterToUse = D3DADAPTER_DEFAULT; for( UINT Adapter = 0; Adapter < m_pd3d->GetAdapterCount(); Adapter++ ) { D3DADAPTER_IDENTIFIER9 Identifier; HRESULT Res = m_pd3d->GetAdapterIdentifier( Adapter, 0, &Identifier ); if( strstr( Identifier.Description, "PerfHUD" ) != 0 ) { AdapterToUse = Adapter; d3dDevType = D3DDEVTYPE_REF; break; } } if( FAILED( hr = m_pd3d->CreateDevice( AdapterToUse, d3dDevType, hWnd, BehaviorFlags, &m_d3dpp, &m_pd3dDevice ) ) ) { SAFE_RELEASE(m_pd3d); return false; } video card is radeon X1950 PRO now. Alpha Test fail only happen on ATI. when i run on NVIDIA, no problem. ATI sucks! thx.
  13. DX say that : Direct3D9: (INFO) :Direct3D9 Debug Runtime selected. ... Direct3D9: (INFO) :======================= Hal HWVP Pure device selected Direct3D9: (INFO) :HalDevice Driver style 9 Direct3D9: (INFO) :Failed to create driver indexbuffer in DX control pannel : Debug Output Level is 4. Use Debug Version checked. Maximum Validation checked. Enable Shader Debugging checked. Break on Mem checked. Break on D3D9 Err checked.
  14. happy x-mas everybody when i called d3d->CreateDevice(), next message popup, "Direct3D9: (INFO) :Failed to create driver indexbuffer" as result search on web about this msg, guess that i can ignore. am i right? but, fail to alpha test on my game app. i try to find reason of alpha test fail. any relation of this? so, what the hell was this message? P.S. sorry to my bad the english language.
  15. thx !!!!! happy new year ~