Jump to content
  • Advertisement


  • Content Count

  • Joined

  • Last visited

Community Reputation

1004 Excellent

About gwihlidal

  • Rank

Personal Information

  • Interests

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. Also (shameless plug): http://www.frostbite.com/2014/11/moving-frostbite-to-pbr/   Cheers, Graham
  2. Other good references:   https://blog.molecular-matters.com/2014/11/06/stateless-layered-multi-threaded-rendering-part-1/   https://www.cg.tuwien.ac.at/research/publications/2007/bauchinger-2007-mre/bauchinger-2007-mre-Thesis.pdf   http://jendrikillner.bitbucket.org/blog/blog/stateless_rendering/   -Graham
  3. gwihlidal

    Dice Battlefront Level Editor

    Hey,   I work on Frostbite Rendering and DICE games :)   We have published information about older versions of this tech. We have improved this in numerous areas over time, but many aspects still hold true to this information:   http://amd-dev.wpengine.netdna-cdn.com/wordpress/media/2012/10/Andersson-TerrainRendering(Siggraph07).pdf http://www.slideshare.net/DICEStudio/terrain-in-battlefield-3-a-modern-complete-and-scalable-system   For Dragon Age Inquisition, we also added advanced terrain displacement mapping to the terrain (BF3 had basic terrain tessellation), and this tech made its way into Star Wars Battlefront, too.   Shading (i.e. PBR) has been one of the biggest improvements as of late to our fidelity (aside from great artists and photogrammetry - http://www.frostbite.com/2016/03/photogrammetry-and-star-wars-battlefront/)   We continually publish quite a lot of information here: http://www.frostbite.com/topics/publications/   Cheers! Graham
  4. Hi, in my GDC 2016 talk, I discuss using the approach MJP mentioned to pass the draw index through to the indirect args using a root constant: http://www.frostbite.com/2016/03/optimizing-the-graphics-pipeline-with-compute/   Cheers, Graham
  5. gwihlidal

    Per Triangle Culling (GDC Frostbite)

    Hi!   I'm the author\presenter of this research. Hodgman is correct here. Triangle culling is definitely worth it, as evidenced by my initial slides showing peak primitive rate per triangle vs. available ALU. I mention cluster culling just to show we have it, but previous research (like the Siggraph 2015 GPU-Driven Rendering Pipelines work) shows cluster culling, so I wanted to take it further and detail per-tri instead. Combining per cluster with per triangle is significantly better than just doing per cluster. You can have lots of surviving clusters within your frustum that contain tiny triangles which will not be removed. The same goes for depth and frustum. Additionally, I go over some algorithms like blend shapes, cloth, or even voxelization which can't be done per-cluster, so this technique efficiently iterates per triangle, enabling the improved usage of these algorithms.   NV has different bottlenecks when talking about primitive rate, so async compute isn't the showstopper here (I can't get into the specifics due to NDA, but these techniques can be implemented differently on NV for a big win - i.e. fast passthrough geometry shaders on Maxwell+).   It comes down to, what is the primitive rate between setup vs. rasterizer. If it's the same rate, culling in compute will be faster. If setup is 2x the rate of rasterizer, you need more than 50% backface for it to be effective, and the gains will be less.   In a future blog post, I may show more details of the cluster culling that we're doing - though no promises yet :)   In summary, per-triangle culling is currently absolutely beneficial on AMD. Sure, just like most algorithms you can do a coarse\broad phase cull pass, and then do a fine\narrow phase cull phase. This talk\research is about how to perform the absolute fastest narrow phase cull on GCN.   -Graham
  6. RT @geofft: If you're having float problems, I feel bad for you, son I got 99.0000001 problems but .9999 ain't 1
  7. Today officially marks my last day as a BioWare employee, as I have joined the core Frostbite team as a senior rendering engineer
  8. RT @m18e: @gwihlidal Quick! Put it in a Cornell box!
  9. My house has lots of cool objects for a graphics engineer :) http://t.co/GkAmE8ImZU
  10. I just bought Dash, a OS X Documentation Browser for 80+ APIs http://t.co/2P4687CTbA
  11. Spent the whole day debugging some awful awful memory allocator bugs, but so rewarding to finally track them down!
  12. RT @BlondeNerd: I love how every time you bang someone in The Witcher you get a, like, Pokemon card of that woman. GOTTA CATCH 'EM ALL!
  13. I'm super busy working on Battlefield 4, but this is an awesome thread, so I thought I'd link my own story (published recently on BioWare's blog).   http://blog.bioware.com/2013/07/25/staff-blog-graham-wihlidal-senior-software-engineer/   Cheers! Graham
  14. Some great replies here so far. One suggestion I wanted to add is avoid doing look ups into your data manager by string. This pattern never scales (huge performance hit with a large catalog), uses a lot of memory, and often causes fragmentation. Instead, I would generate a hash of your asset names (32bit or 64bit, possibly working in a bucketed hash to handle collisions) and make your requests against hash values instead. Cheers! Graham
  • Advertisement

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

GameDev.net is your game development community. Create an account for your GameDev Portfolio and participate in the largest developer community in the games industry.

Sign me up!