8 ms·
While it is nothing to do with obfuscation, I can recommend Peter Shirley's blog http://psgraphics.blogspot.com/ http://psgraphics.blogspot.com/ and the "Build
by SixSigma 10y ago
While it is nothing to do with obfuscation, I can recommend Peter Shirley's blog http://psgraphics.blogspot.com/ http://psgraphics.blogspot.com/
and the "Build a renderer in a weekend"
http://in1weekend.blogspot.com/2016/01/ray-tracing-in-one-weekend.html http://in1weekend.blogspot.com/2016/01/ray-tracing-in-one-we...
I've recently been making a Julia version from the C++ source code
https://github.com/lawless-m/Jender https://github.com/lawless-m/Jender
- guitarbill 10y agoSeconded, his "Ray Tracing in One Weekend" is great. Simple, and so satisfying once you start producing images.
- tostitos1979 10y agoSince we're on the subject ... is real-time tracing feasible in the next decade? i.e. if we had a load of cores, can we parallelize the heck out of it?
- amelius 10y agoIt seems to me that all physics simulation is highly parallelizable because, well, physics is parallel :) But please correct me if I'm wrong.
- jezfromfuture 10y agoWell i would think of a lot of phsyics calculations will be relying on the outcome of other physics calculations ie , you push a chair down some stairs it hits objects these objects hit other objects which in turn caused the carpet to be pulled under the objects yet again disturbing the objects an so on. Just a stupid thought probably im wrong.
- dagw 10y agoPhysics is also very linear. You cannot know what will happen at time t+1 until you know exactly what happened in time t.
- Senji 10y agoNot exactly true, there are subcases where you can isolate islands of objects and be sure they wouldn't interact.
- regularfry 10y agoThe computation is, but the scene description isn't. In the general case, any ray can hit any object from any intersection, which means effective use of cache lines is the hard bit.
- restalis 10y agoI remember reading a while ago some articles about Lucas Films real-time rendering feature, planed for their future flicks. Actually, here's one (of the articles): http://www.loopinsight.com/2013/09/24/lucasfilm-pushes-the-boundaries-with-real-time-rendering/ http://www.loopinsight.com/2013/09/24/lucasfilm-pushes-the-b... For open-source, I know that Blender uses Cycles, which fires ray-tracing renderings in the normal views on each change, and this so is for quite a while already.
- wlesieutre 10y agoBlender only runs raytraced previews when you set the view mode to "Rendered," not in normal operation. It's tough to work in because you don't get any of the usual UI like selection highlight; it's just a straight render defaulted to relatively low quality. Great for a quick preview though, especially while setting up lighting. And if you've been good with naming your objects you can always select things out of the document tree.
- bananaoomarang 10y agohttps://imgtec.com/powervr/ray-tracing/ https://imgtec.com/powervr/ray-tracing/
- phkahler 10y ago>> is real-time tracing feasible in the next decade? It's feasible today, it just depends on what quality level, scene complexity, and frame rate you're looking for. I can trace a the standard bunny model with 2 light sources in a 640x480 window at >10 FPS on my dual core AMD64 from 2005. The problem is that we want better surface models, global illumination, and higher resolution. OTOH, we can get 8 core 3GHz+ processors today so that make simple renderings go pretty well. You should be able to render very complex geometry at HD resolution without any lighting effects at very interactive rates, but if that's all you want, just throw triangles at OpenGL.
- tostitos1979 10y agoRegarding your last point .. I thought the point of ray tracing is that you get a lot more realistic images than with OpenGL (at least code that is not significantly optimized). If you want 60fps VR, that's 16ms of latency for everything including rendering. In fact, if the user moves their head, there might even be a tighter deadline (I don't know what the number is but I think this is called motion-to-photon latency).
- phkahler 10y ago>> Regarding your last point .. I thought the point of ray tracing is that you get a lot more realistic images than with OpenGL That's correct - you CAN get more realistic images. I guess what I was trying to say is that the better (photo realistic) rendering quality is not real-time yet on high resolution displays, but simple rendering using ray tracing techniques can be near real time. But if all you want is simple rendering with phong shading you're probably not going to bother with ray tracing.
- elihu 10y ago> Regarding your last point .. I thought the point of ray tracing is that you get a lot more realistic images than with OpenGL With basic (i.e. Whitted) ray tracing, you get shadows, reflection, and refraction. You can do that in OpenGL too, but it's more work and you have to do go through some unnatural contortions and/or use approximations that might look convincing but aren't physically accurate. Soft shadows, focal blur, and motion blur can be supported by tracing more rays per pixel. The big leap in realism (the kind where you would say ray tracing is definitely better than what you would see in a modern game) comes when you add global illumination, which is computationally a lot harder than basic ray tracing because it requires a large number of rays per pixel. It works by random sampling, so you can generate a blurry, grainy image fairly quickly, but noise-free images take a lot longer.
- StateSponsor 10y agoOh you young people. Next Decade? Try 24 years ago. A little game called Wolfenstein 3D used raycasting. (Yes I know the subtleties that distinguish ray[tracing|marching|casting].)
- CyberDildonics 10y ago> (Yes I know the subtleties that distinguish ray[tracing|marching|casting].) Even worse than not knowing them, you think you do and have no idea.
- typedef_struct 10y agoThe problem is that as ray tracing advances, so do the hacks on top of rasterization to enable more realisticish images. So rasterization keeps winning. Someday, though...
- SixSigma 10y agoJudge for yourself with these nVidia demos https://www.google.com/search?q=nvidia+real+time+raytracing&tbm=vid https://www.google.com/search?q=nvidia+real+time+raytracing&...
- elihu 10y agoIt's been feasible for about a decade on modest hardware, just not at super-high resolutions and framerates that most people expect from modern GPUs. (Outbound was a sort of a technology demo/student project game that I remember being sluggish but playable on a Core 2 Duo.) Also, plain raytracing can look kind of bland. Most global illumination algorithms are based on ray tracing, but require tracing a very large number of rays. So, really the question is more whether we can get to real-time path tracing, which is a harder problem. Another problem is tooling. Game developers know how to get good performance on GPUs, but ray-tracers have completely different performance characteristics. Re-building a bounding volume hierarchy is, in general, O(NlogN), so you have to be careful about partitioning your scene into things that move/deform and things that don't and only rebuild the parts of the BVH that need updating.
- corysama 10y agoFrom last year: https://www.youtube.com/watch?v=FbGm66DCWok&t=42s https://www.youtube.com/watch?v=FbGm66DCWok&t=42s
- adamkruszewski 10y agoThere is also "Second Week" released which I greatly recommend and the author is also very responsive via email.
- SixSigma 10y agoAnd also "For the rest of your life" which is part three.
- solidangle 10y agoI can also recommend the more in-depth, Academy Award winning, book "Physically Based Rendering: From Theory to Implementation" [1] by Matt Pharr and Greg Humphreys (and Wenzel Jakob for the soon-to-be-released third edition). The book has nearly 1200 pages though so, unlike Shirley's book, you probably won't be able to read it in a single weekend. It covers both the theory and the implementation of rendering techniques which are close to the state of the art and it provides many pointers to interesting papers. [1] http://pbrt.org/ http://pbrt.org/
- herbstein 10y agoI have a question about this book. How are you supposed to follow along with it? Peter Shirley's book encourages the reader to program the renderer along with the explanations. It doesn't seem like that is possible with PBRT, but I might be misunderstanding something.
- Narann 10y agopbrt is a raytracer code + a book to explain the code and the maths involved. You don't really need the code to read and understand the book. It's an amazing idea and his award is truly deserved. The point is not to learn you how to _write_ a raytracer but to explain how a production raytracer _works_.
- solidangle 10y agoThere are exercises at the end of each chapter. Most exercises ask you to implement something new in pbrt, often something described in a (SIGGRAPH) paper. Pbrt is very modular and it's quite easy to add a new acceleration structure, a new shape, a new light, etc. I haven't done these exercises myself though, I mostly use the book as a reference while implementing my own renderer.
- sclangdon 10y agoPBRT is big because it is written using literate programming and therefore includes (almost[1]) the entire source code for the ray tracer in print, which arguably makes it easier to follow than other books on the topic. The PBRT ray tracer is also a production quality ray tracer and uses many advanced techniques you won't find hobby ray tracers, such as differential geometry, which naturally increases it's size. [1] Some utility classes are left out.
- fao_ 10y agoThanks!
- signa11 10y agoi have been doing the same thing, albeit a bit slowly, but with python :) it's great fun, once you start seeing something tangible on the screen. then it becomes very difficult to stop ;)