RDragon1

Members
  • Content count

    1617
  • Joined

  • Last visited

Community Reputation

1205 Excellent

About RDragon1

  • Rank
    Contributor
  1. Metal API .... whait what

      3 x 4x8bit isn't uncomfortable on next-gen consoles. I guess Xbone has more restrictions here, but Infamous Second Son used 6 1080p gbuffer targets + depth + stencil - 3 of the gbuffer targets are 4x8bit, the other 3 are 4x16bit. See slide 41 here: http://suckerpunch.playstation.com/images/stories/GDC14_infamous_second_son_engine_postmortem.pdf
  2. The 128-bit Operating System

      By DCAS do you mean an atomic compare-and-swap? Why would you need/want a larger pointer / address space? Or do you simply want to do a CAS on 16 bytes? If so, x86 already has the cmpxchg16b instruction.   128 bit pointers will waste a lot of memory. 64 bit pointers already do. Why do you currently think you need to address more than 2^64 bytes?
  3. For a discarded pixel you've already paid the cost of its fragment shader even though it doesn't writa anything. Further, you'll have to at least run the fragment shader for the visible geometry behind it, so that's an added cost. This really adds up if there's lots of overlapping discarded pixels - lots of fragment shader computation performed, with the results thrown away.
  4. Yes, these are "intrusive lists" and I would use caution when deriving from a type to add 'next' and 'prev' pointers to your object. What do you do when you want the object to be in more than one list? Also, how do you keep code from looking confusing - going this route, if you add an object to a list, you have to remember you're implicitly removing it from any list it was in previously.
  5. Xbox One and Indie Dev

      But XBLIG required you to build on top of XNA, right? And XNA is dead, and I haven't heard anything about XNA games running on XBone, so.....? (To me that sounds like XBLIG is simply not coming to xbone)
  6. Basic Level Editor Question

    Looks like someone likes Unity
  7. No, vertices can be shared between adjacent triangles, as long as all attributes match (position, normal, uv, whatever). For example, vertices along a 'hard edge' (not shared normals) are not shared between adjacent triangles. At maximum, numVertices = numTriangles*3, but there is as much sharing as possible.
  8. That is, unless you're trying to model some particular transparent material that has thickness and reflection / scattering properties, in which case this is much more complex. I didn't catch if this was an offline renderer or something you're trying to do in real time.
  9. For some light color C shining through a surface with transparency level t [0,1] and color S at the intersection point, I would expect the light going out the other end is (C * t * S), and the light reflected by the surface is C * (1-t) (of course split that into diffuse/specular/whatever makes sense for your light model)   Does this answer your question?
  10. OpenGL ID3D11ShaderReflection

    I don't know how fast it is, but I'm sure it wasn't designed with speed in mind. It's more the kind of thing you want to run once over your shader to get the information you need, then store that in your own data for use at runtime as necessary. I wouldn't use it in your render loop, it's more of a tooling library for inspecting the shader code.
  11. Check the generated shader assembly output to find out if they're equivalent.
  12. So the problem is exactly what I suggested. Your 'amb' and 'diffuse' variables should be float4's, but they're floats.
  13. Yes, each core is a full CPU - each has its own set of registers (including the program counter). As a result, each core is running a separate thread in the system. It doesn't make sense for two cores to be running the same thread. A 4 core CPU is almost the same as having 4 separate CPU sockets each with a 1 core processor, except a 4-core processor on the same die will share various forms of cache and such.
  14.   Then can you paste your *actual* code? Because what you've written there only says 'float', which is not a float4.
  15.   I think you mean for those types to be float3