8 ms·
https://www.youtube.com/watch?v=LXo0WdlELJk https://www.youtube.com/watch?v=LXo0WdlELJk I'm pleased to see that the tech video includes spherical mirrors. As I
by joosters 9y ago
https://www.youtube.com/watch?v=LXo0WdlELJk https://www.youtube.com/watch?v=LXo0WdlELJk
I'm pleased to see that the tech video includes spherical mirrors. As I understand it, all raytracing demos are obliged by universal law to include at least three reflective balls in any promotion of the technology.
One day, someone will figure out a game where these super-shiny ball bearings are a critical part of the gameplay, and at that point, raytracing will finally take off...
- ttoinou 9y agoPortal :p ?
- Aardwolf 9y agoEven in AAA games of today with amazing graphics, I still see polygons in cylindrical, conical and round objects (I'm not talking about raytracing but regular rendering). Everything looks so realistic, but a well or bucket [1] or some other cylindrical object you encounter looks not round but faceted, breaking the suspension of disbelief. Raytracing may bring more roundness, but why not quadratic surfaces or some other fast enough to render method of real roundness in rasterizers? It may be expensive (although one surface would replace many polygons...), but it'd solve one of the last remaining uglinesses :) [1] https://imgur.com/gallery/AdDyT8B https://imgur.com/gallery/AdDyT8B
- blaenk 9y agoI think that's just a matter of how many subdivisions/polygons they decide to devote for those assets. For example, that bucket is pretty inconsequential in the overall scene so they can save some polygons on it, to give more toward something like a character or weapon model that is more prominent, more of the time, since more polygons means higher storage and computational requirements. Something like tessellation [1] can be used to dynamically tune how many subdivisions to give a model based on certain parameters, such as camera distance. [1]: https://en.wikipedia.org/wiki/Tessellation_(computer_graphics) https://en.wikipedia.org/wiki/Tessellation_(computer_graphic...
- haldean 9y ago(I do geometry but I'm not in the gaming field) I'd guess that this is because the fastest way to compute a precise silhouette of an arbitrary shape (like quadratic surfaces) is to do a ray test for every pixel that might hit the surface. You could project the surface onto the image plane to get boundary curves, but (a) determining the curves that make up that silhouette is a complicated geometric process that's prone to numerical error in weird edge cases (of which there are lots) and (b) once you have the projected curves, you still have to actually shade the interior, which require you to project back onto the original surface to figure out the normal, texture, etc. At that point, you're essentially doing little ray tests for each pixel anyway, so why not just raytrace the whole thing? The global illumination approximation is much much better with raytracing, and modern GPUs can do it real-time. By the way, modelling everything as an analytic surface rather than as a discretized polygon mesh is called "Boundary Representation" or b-rep, and it's what's used in solid CAD programs that engineers use, like Solidworks or Inventor. Engineers and designers like analytic surfaces because they have "infinite" resolution, but even those CAD programs almost invariably polygonalize b-rep to a mesh and then render the mesh, because it's expensive to hit-test all the surfaces involved; computers only recently became able to do that fast enough for real time interaction, and most CAD programs are old old old.
- electricslpnsld 9y ago> By the way, modelling everything as an analytic surface rather than as a discretized polygon mesh is called "Boundary Representation" or b-rep I thought that was iso-geometric analysis? What is the difference?
- haldean 9y agoIsogeometric analysis is a means of doing finite element analysis over boundary representation models; FEA is used to physically simulate materials, and usually requires a polyhedral mesh (a mesh where the elements are 3D, instead of the "normal" kind where the elements are 2D polygons). IGA is a way to skip conversion of your b-rep to a mesh while doing that sort of simulation.
- nitwit005 9y agoFallout 4 probably set a limit for how many polygons an object could be because the scenes had to support hundreds.
- Tobba_ 9y agoThat's just because the industry is stuck using triangles in the art pipeline (and don't put in as much effort into the low-polys as they used to). If they were willing to use some variation of patch-based pipeline so that they could utilize the tessellation hardware that has existed for years, it wouldn't be a problem. I've heard artists are scared of it due to how amazingly awful some editors managed to make the NURBS editing experience, but with a decent editor it really wouldn't be a problem. Sadly tessellation largely just gets used to screw over AMD performance (for those sweet Nvidia kickbacks; if you're wondering why some games like Crysis 2 tessellate flat surfaces into an insane number of polygons, this is why).
- virtualritz 9y ago> I've heard artists are scared of it due to how amazingly awful some editors managed to make the NURBS editing experience, but with a decent editor it really wouldn't be a problem. That's simply not true. I started getting into (high end) 3D in the early 90's. I've probably used every NURB or higher order surface modeling tool under the sun since then. In fact, there are many amazing modeling tools for working with NURBs or other higher order surfaces. They just all don't even come remotely close to polygon modeling when precision is secondary and workflow/ease of use is paramount. So the answer in the VFX world, for years, has been subdivision surfaces. They have almost all of the good of bi-cubic patch modeling and almost all of the good of polygon modeling. What's more, existing polygon modeling tools can easily be upgraded to subdivision surface modelers by merely enforcing 2-manifold topology and adding the ability to display an [approximation to] the limit surface in real time. Some of the schemes have nice properties. For example, after one step of Catmull-Clark, the entire surface consists of quads. And when treating each local grid of quads as the control polyhedron of a cubic b-spline patch (not a NURB but an UNRB, a uniform, non rational b-spline patch), the surface of the patch is equal to the limit surface that would be obtained by the subdivision scheme.
- phkahler 9y ago>> the surface of the patch is equal to the limit surface that would be obtained by the subdivision scheme. That's not true if any of the vertices is extraordinary. In other words a vertex shared by more or less than 4 quads. The good news is that subdividing those quads each into 4 smaller ones will result in 3/4 of the surface area meeting the right criteria. Or the area hard to deal with becomes 1/4 the size. The ultimate coolness of subdivision surfaces is that every vertex on a subdivided mesh is a leaner combination of the original vertices. The weights do not change during animation. The weights only change if the topology does. Another nice thing is that meshes at different LOD contain the vertices of the lower LOD mesh. They really do everything with one exception - they can't exactly represent quadric surfaces which are so important in CAD tools.
- rasz 9y agowould you prefer world's greatest virtual concrete slab? https://techreport.com/review/21404/crysis-2-tessellation-too-much-of-a-good-thing/2 https://techreport.com/review/21404/crysis-2-tessellation-to...
- Aardwolf 9y agoNo, there the extra polygons do nothing visually useful
- PaulHoule 9y agoHow about a game that happens outside a pawn shop?
- corysama 9y agoA separate tech demo from Remedy: https://www.youtube.com/watch?v=70W2aFr5-Xk https://www.youtube.com/watch?v=70W2aFr5-Xk
- milesvp 9y agoMy understanding is that rasterization really made portal hard to make. They had to jump through a bunch of hoops to make it all work. Meanwhile I understand that adding portals to raytrace quake was like an afternoon's exercise. I'm also annoyed that there's a map in overwatch where the corner mirrors don't actually reflect anything :P I think generally with many of the tricks that have come out of SIGGRAPH for the last decade, we've really reached a point where, computationally, raytracing really is starting to have the advantage over rasterization in terms of both pixel count and object count. The struggle for the next 30 years however is going to be overcoming the tooling built around rasterization, and to a lesser extent the headstart rasterization has had in terms of hardware. Not to sound too crazy but I also have a strong suspicion that if you tied a physics engine to a raytracer, you might get your physics 'for free' which could be a big deal for pushing forward more realistic physics too.
- electricslpnsld 9y ago> Not to sound too crazy but I also have a strong suspicion that if you tied a physics engine to a raytracer, you might get your physics 'for free' which could be a big deal for pushing forward more realistic physics too. Why is that?
- whatshisface 9y agoTo my knowledge, the biggest part of game physics is collision detection. (There's a lot more floats in the geometry of a rigid body than there are in its motion vectors). If you had a perfect raytracer for "free," you could fire out a fiber bundle from moving objects in the direction of their motion to find out what they'd hit.
- Retra 9y agoHow is that free though? You have to fire more rays for each moving object. That's not cheap. And the only thing you get is variable accuracy collision detection.
- 9y ago
- beamatronic 9y agoMarble Madness?
- jlebrech 9y agoone tricky thing to code is where you as the player look into a mirror, the trick usually is to create another exact replica of the room you're in and your player and use that like a skybox. but with this you could have all the particle effects work properly in the reflection.
- bhouston 9y ago> one tricky thing to code is where you as the player look into a mirror, the trick usually is to create another exact replica of the room you're in and your player and use that like a skybox. Actually mirrors can be easily implemented as a pre-render step, you just re-render the system from the right perspective, a virtual camera, and then paste that on the polygons that are acting as the mirror.
- jlebrech 9y agoframe rates will drop as you look in the mirror no?
- bhouston 9y agoIt should sort of even out. Because in the area of the mirror there is very little first order scene - because it is just a simple polygon, there is just the second order scene. This is how mirrors have been done in video games for the two decades. Example in Three.JS: https://threejs.org/examples/?q=mirror#webgl_mirror https://threejs.org/examples/?q=mirror#webgl_mirror
- audunw 9y agoSpheres are just a super simple and dead obvious way of showing that your rendering engine is able to do realistic reflections. In the demo, there are actually lots of much more subtle reflective surfaces that contribute to the realism of the scene. > .. critical part of the gameplay .. Strictly speaking, graphics hasn't been a critical part of gameplay for a long time. I think we've mostly gone beyond the point where increasing graphics capabilities actually enable new gameplay.
- mikevin 9y agoThe exception being VR/AR