• 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.

Volgogradetzzz

Members
  • Content count

    216
  • Joined

  • Last visited

Community Reputation

1101 Excellent

About Volgogradetzzz

  • Rank
    Member

Personal Information

  • Location
    Hamburg, Germany
  1. Hi community. As a part of a learning process I wrote an article. Maybe someone will find it useful too.
  2. You can find a better documentation here: D3DXMatrixOrthoOffCenterLH and D3DXMatrixOrthoLH.
  3. Hi Jason, it's a good solution, thank you. But if I understood you correctly, your approach is basically the same as drawing with indices. If I would have a set of points as one constant/structured buffer, I have to pass the id of a point as a vertex data, right? So, drawing the same patch multiple times will require to duplicate vertices. And I need a unique sequential patch id for coloring entire patch. So in domain shader a could sample structured buffer of colors.
  4. Thank you @MJP. That make sense. And actually documentation says that though I had to read it several times to understand.   @Matias is it still true if I have a pass-through vertex shader?   And maybe you can help me with my scenario. I have a big buffer with all control points. A have several index buffers for patches. Some patches should be drawn multiple times with different transformation. So if I want to draw everything in one call I have to duplicate indices. Right now I'm drawing each patch in it's own draw call and for patches that need to be drawn multiple times I'm using instancing. Here's a problem - for each new instance SV_PrimitiveID resets to 0. SV_InstanceID is not available in hull/domain shader and I have to pass it from vertex shader unnecessary duplicating data. Looks like instancing not works very well with tessellation.
  5. Greetings,   In my domain shader I want to sample a structured buffer with current patch id. I specified SV_PrimitiveID as input parameter but the value is 0 for all patches. And to be honest I don't see how the pipeline can provide a patch id if I draw each patch with separate draw call (DrawIndexedInstanced()). But the documentation says I can use it for patch id.
  6. Thanks guys. I understood, the waiting for the queue signal not necessary here. Thought it can be used to make sure that operation completed and release the temporary upload heap.   p.s.: I just realized that @iedoc is an author of amazing directx tutorials and I want to say thank you, I was followed your posts for a long time :).
  7. That sounds interesting. Can you please elaborate it a bit more? Why do you use 3 command lists? I don't see a problem of doing the same with only one. What do you mean by copy from upload to default - call one of the command list's copy methods? What do you mean by shader read state?
  8. Thank you guys, now it's crystal clear.
  9. Thank you iedoc, now it's almost clear. The last piece of puzzle is synchronization. When I map gpu memory and memcpy the data it's not available on the gpu immediately. It can happen that actual drawing in gpu can happen before constant data arrive from cpu. This is theory, because I never saw any sync in all samples I investigated. And btw, how can I synchronize, the mapping is not a part of queue/command list api so I can't set a signal or put a barrier on it?
  10. Thanks @Hodgman.     I'm afraid I didn't get it. Can I ask you to explain it in more detail, with the code maybe?
  11. Hello,   This topic is super confusing for me and I hope you'll help me to understand it better. Here several usage scenarios:   1. I have n objects and for every object I need to change a constant data before draw. Let's say the constant data ConstData have one integer field and is different for every object. I have a constant buffer consBuffer and I need to update it. In pseudo code: ConstData cd; cd.data = 1; ptr = consBuffer.Map(); memcpy(ptr, cd); constBuffer.Unmap(); draw(obj1); cd.data = 2; ptr = consBuffer.Map(); memcpy(ptr, cd); constBuffer.Unmap(); draw(obj2); ... It well known that draw doesn't happen immediately but goes to the gpu queue for later execution. And from the code I wrote I see that when the gpu is ready to actually draw object1 the constant data will be overridden by later calls to memcpy. Does that mean that I need to have a different constant buffer for every object? So if I have 100 objects and 2 back buffers I need 100 * 2 = 200 constant buffers. Is it right?   2. If I want to store a constant data directly in root signature, can I update the root signature before every draw call? Taking my previous example, I will not have calls to Map()/memcpy()/Unmap(), but will write directly to signature. Do I need to wait until previous object or frame finished rendering?   3. If I have rarely changed constant buffer, a projection matrix, for example, do I need to have different constant buffers for every render target? In other words, if projection matrix was changed can I safely update buffer only once and hope that changes will propagate to all frames in the queue?    
  12. Thank you guys. But still not very clear. What is this formula does: ftp://ftp.sgi.com/opengl/contrib/blythe/advanced99/notes/img166.gif It looks like vector length, but what is this -1 term?
  13. Greetings,   I like matcap technique for it's simplicity. Before I used just view space normal as lookup but recently I found this article which uses a reflection vector and a fancy formula for lookup coordinates. What is the math behind this formula?
  14. Greetings.   The topic's name is a bit misleading - I didn't know how to best name it. I'll describe here what I'm doing.   I'm writing very simple engine for rendering 3d models (surprise!). I want to encapsulate 3d object data in separate class - Object3D. This class have vertex buffers, index buffer, shaders, input layout, rasterizer state. Later I want to draw it but this information that I have in object is not enough. For example, I'm using separate (non-interleaved) vertex buffers for every element and when I'm supplying them to IASetVertexBuffers I need to provide strides and offsets. Offsets are simple in my case - they are all zeroes. With strides I have to use correct numbers, like here: vector<UINT> strides{ static_cast<UINT>(sizeof(XMFLOAT3)), static_cast<UINT>(sizeof(XMFLOAT3)), static_cast<UINT>(sizeof(uint32_t)) }; Right now I'm supplying manually this values together with all necessary data. But I don't want. I have vertex buffers, input layout but I can't grab this info from there.   The next question arises when I'm starting to draw. In DrawIndexed I have to provide number of indices. Again, I can't get this info from my index buffer and I'm supplying this data manually.   I hope it's clear what I wrote. Please if you have questions - ask and I'll refine my essay.
  15. Greetings,   I'm a programmer and I'm interested in programmatic character animation - walk, run, bipedal, many-legs creatures etc. What is the state of the art today? I heard about NaturalMotion's Euphoria system. Also I saw Ubisoft's IK Rig system. They look amazing. Where can I find info about similar algorithms?