Hacker News new | past | comments | ask | show | jobs | submit login
Vulkan Raytracing Tutorials (iorange.github.io)
109 points by ArtWomb 36 days ago | hide | past | web | favorite | 15 comments

Hopefully the lists expands! I've been meaning to take some time off to focus on GPU programming and Vulkan seems quite attractive.

I would advise against starting learning real-time rendering/an API for real-time rendering from raytracing (not last because of the fact that you wound need special support from your GPU or a driver fallback). It would be better to start from standard rasterization techniques, possibly with a less explicit API such OpenGL or Metal. https://learnopengl.com/ is decent enough from what I have seen.

Ray tracing in a weekend springs to mind as being very approachable:


I didn't do it in one weekend but managed to get through the material in a couple weekends ;)

Metal is Apple only, so not a good API to start with. If you want explicit from the start - use Vulkan. And if you want to start with OpenGL, at least do it on Linux, not on macOS where OpenGL is crippled.

In what sense is OpenGL crippled on the mac?

In the sense that it is frozen at 2010's OpenGL 4.1 (the current version is 4.6 with important updates such as compute shaders and KHR_debug).

In fact OpenGL support has recently been officially deprecated by Apple, making the crippling official. It will almost certainly never see another feature update. It's Metal or nothing on Apple platforms for future support.

Apple didn't keep it up to date, so you can't use anything beyond OpenGL 4.1. It's a clear intentional crippling.

Do you know of any resources for learning 3D basics? I just want to understand the pipeline for how a camera with a frustrum translates simple vertex objects to be rendered on a 2D canvas (the parameters, and the relevant math).

LearnOpenGL.com's tutorials are where I learned it from.


From there, I got interested in linear transformations in general, and then did Gilbert Strang's course in Linear Algebra on MIT OCW.

If you're looking for textbooks, the two big ones are "Real-Time Rendering"[1] and "Physically Based Rendering from Theory to Implementation"[2]. The former focuses on techniques used in real-time rendering (frames per second), while the later focuses on those used in offline rendering (seconds per frame). If you want something more bite-sized, you might try "Ray Tracing in One Weekend".

The first 3 chapters of "Real-Time Rendering" and all of "Ray Tracing in One Weekend" are freely available on the authors' website for free or pay what you want.

[1]: http://www.realtimerendering.com/ [2]: https://www.pbrt.org/

Physically Based Rendering looks great. I know that one of the authors - Matt Pharr - also has some great blog posts about "ispc", a compiler he wrote while at Intel: https://pharr.org/matt/blog/2018/04/30/ispc-all.html. If he was involved in a book in an area I was thinking about studying I would buy it in a heartbeat

Writing an unaccelerated classical raytracer is an excellent starting point in all things 3D.

Everything beyond that is arguably just optimization.

scratchapixel.com is a great resource.

> possibly with a less explicit API such OpenGL or Metal

How is Metal less explicit than Vulkan? As far as I understood they are both quite low level.

From what I understood, Metal provides more high level functionality than Vulkan, i.e. it's like Vulkan + higher level convenience.

Applications are open for YC Summer 2019

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact