• Advertisement


  • Content count

  • Joined

  • Last visited

Community Reputation

283 Neutral

About sbroumley

  • Rank
  1. thanks for the replies guys (+'ve ratings applied) Googling around, I did find a direct-show example that looks like it can convert audio formats. Only problem with it is I have to download it via the latest windows SDK which sounds like a right kerfuffle. Anyone have experience with direct-show audio programming (with Visual Studio 2005)? Can it do the job of easily converting any format to .wav pcm format? cheers, -Steve
  2. thanks for the replies guys (+'ve ratings applied) Googling around, I did find a direct-show example that looks like it can convert audio formats. Only problem with it is I have to download it via the latest windows SDK which sounds like a right kerfuffle. Anyone have experience with direct-show audio programming (with Visual Studio 2005)? Can it do the job of easily converting any format to .wav pcm format? cheers, -Steve
  3. Does anyone know of a good "free" PC audio conversion library/SDK. I'm basically looking to be able to load a number of different file formats (mp3, aiff etc), and be able to convert them to the .wav format. I don't really need to have the source code (a compiled lib + dll will work just fine). The audio equivalent of the DEVIL image library would be perfect. thanks -Steve.
  4. Thanks for the reply Dave. I understand the high level of what I need to do like you suggest, it's the implementation that I'm hung up on. Ideally I'd like to do it per vertex, rather than have a per object scale. So in the vertex shader, I just need to scale Thickness by ScreenPos.w to counter-act the perspective divide. But that doesn't quite work, because after adjusting Thickness, this will create a new ToonVertexPos, which after running through the matrices again will produce a different ScreenPos.w, so the scaling is not accurate again and I'm back at square one. It's more of a math problem than a graphics problem, maybe I should post in the math forums too? thanks -Steve.
  5. I have a very simple vertex toon shader that creates a toon black outline on objects by simply inverting the object and scaling the verts out along their normal like so: Vertex shader HLSL code: // Compute vertex pushed along its normal float3 ToonVertexPos = VertexPos + ( VertexNormal * Thickness ) // Compute screen position float4 LocalPos = float4( ToonVertexPos, 1.0f ); float4 WorldPos = mul( g_World, LocalPos ); foat4 ScreenPos = mul( g_WorldViewProj, WorldPos ); // Send results to pixel shader OUT.Pos = ScreenPos; This works great, but the black outline is in 3d so as you get closer/further from objects it gets bigger/smaller (in screen space) as expected. What I'd like to try is a constant screen space thickness black outline regardless of how close/far away you are from objects. I've tried a bunch of things, but I'm not sure how to counter-act the perspective when computing the ToonVertexPos (ScreenPos.w changes if I update the Thickness based on an initial computed ScreenPos.w) Has anyone solved this tricky math problem before? thanks -Steve
  6. vcproj build order

    Exactly Sneftel. If only I could control this (eg. order of vcproj files in the solution file would work just fine). And yes rolkA - /MP does fix this issue for PC builds. Unfortunately there are other MS platforms involved that don't recognize /MP :(
  7. vcproj build order

    Okay let me give you more info: Project A (.lib) takes 20 mins to compile individually Project B (.lib) takes 10 mins to compile individually Project C (.lib) takes 10 mins to compile individually Project D (.exe) takes 5 secs to compile/link and depends on A,B,C being built. I have a 2 processor machine so it can build 2 projects in parallel. Worst case: 1) VS builds B + C in parallel = 10 mins 2) VS then builds A on it's own = 20 mins 3) Total time = 30 mins Best case: 1) VS builds A + B in parallel. Time to finish B = 10 mins, 10 mins remains on A 2) VS then builds C (10 mins) while it continues finishing the last 10 mins of A. 3) Total time = 20 mins. So you see how it can make a difference. I want the build order to be A + B, then C Now like we all agree on - I can add a dependency to get this order working - adding C depends on A. So far so good and it works fine for a rebuild all - but it has a draw back that I don't want: Say I'm now iterating on code changes and I already have B built and it is up to date. Now if I make changes to A + C and hit build, VS will now build A on its own (20 mins), once it finishes it will build C (10mins) on its own. Total time = 30mins. When infact it could have built A + C in parallel (total = 20mins), but it didn't because of the dependency. So rather than specify dependencies to get the order A,B,C, I need another way. In reality it doesn't matter what order it builds A,B,C, but I want it to be in the order of slowest lib to fastest lib to get the best overlap in parallel builds no matter what is already fully built. So do you get what I mean?
  8. vcproj build order

    Thanks for the reply. You've describes what I've already been through but I don't want to do it via dependencies since it breaks the parallel builds - which I have to have. I'm trying to figure out how .net decides the build order of the other libs (it seems random). I've tried re-arranging the order they appear in the solution files. Tried renaming them (it doesn't seem to be alphabetical). It doesn't look related to the guid numberical value of each vcproj. I'm stumped! Do you know if there is any MS forum that could answer this question. There has to be some logic to how .NET decides the order... thanks so much!
  9. Does anyone know how to explicitly control the order in which .vcproj files are built in MS-Visual Studio? I basically have several .vcproj files in a solution. One of the .vcproj files is the .exe (so it depends on all the other .vcproj files). The rest of the .vcproj files are libs, but it seems I have no control over the order in which these libs are built. NOTE: I can add dependencies to control the order, but then that makes each compile wait one after the other (rather than be compiled in parallel on my quad core). Anyone have any tips? thanks
  10. Distance between Ellipsoid & Plane

    wrt "The problem is, all of the collision triangles need to be transformed to the ellipsoidal space". You actually only need to transforms the triangles that overlap the movement bounding box of the ellipsoid. The movement bounding box is easily computed by taking the min/max of start and end limits on each axis. -Steve.
  11. I had a quick go at plugging the technique mentioned in this thread into my simple shadow mapping test (which works on it's own). The problem is I can't get it to work - it's probably due to me not understanding what space the "shadowTextureCoords" and "gShadowViewerPos" variables are in. Are they in pre-perspective divide clip space or post-prespective divide clip space ie. divide by the w component? Can you answer this Schrompf? thanks so much Steve.
  12. I have an intel pentium 4, 2.8Ghz single core, hyperthreaded CPU I had a go at optimizing my simple test bed engine to be mutli-threaded and the results are interesting: The main program (main thread) handles the logic and builds a display list that is executed on another thread (render thread). I have an option to turn on/off the render thread (when it's off, the display list commands are executed immediately on the main thread). Here's whats weird: when the render thread is turned on, the logic time goes up (not expected!), and the display list building time goes down (expected). The final result is that for both methods (thread on or off), the sum of the logic time and display list building time equal roughly the same amount! This off course results in the same frame rate when cpu is the bottle neck. Can someone explain this? I'm not entirely sure how hyper threading works on a single cpu, but I'm thinking the reason the logic time goes up with the render thread active is because of cache misses caused by the render thread reading from a different area in memory (and invalidating the shared memory cache?) which is fighting with the main thread memory access? thanks
  13. LCP solver materials?

    Here's a link to my favorite LCP related paper by Erin Catto. It's not that hard to implement (compared to other papers I've read) and it's very well written. -Steve.
  14. Dynamic Object Collision Trees

    "Sweep and Prune" is a popular method that works well for the broad phase collision detection of dynamic objects. It's used by many of the popular commercial physics engines and it's relatively easy to implement (there are plenty of resources on the net). Throwing static objects into the mix, I just add them to the sweep and prune also (broad phase), but then for the narrow phase of primitive (in your case sphere) v static mesh (poly soup), I just use an axis-aligned-bounding-tree for the static mesh which has a query that can return the list of triangles within the collision aa-bbox of the moving primitive. -Steve.
  15. Flight model in liquids

    On a related note there are a couple of really good articles (with source and demos) relating to liquid physics in the latest Game-Programming-Gems-6 1) Exact Buoyancy for Polyhedra by Erin Catto 2) Real-Time Particle-Based Fluid Simulation with Rigid Body Interaction by Takashi Amada I picked up a new copy from amazon.com for just over $40 (a bargain!) -Steve
  • Advertisement