Update on my university CPU Ray Tracer: recursive tracing, HDR sky with global illumination, spheres... and painfully low fps :P It's Work In Progress though!
#raytracing #graphics #computergraphics #3d #cplusplus #graphicsprogramming #gamedev #indiedev #solodev #gaming #realtime #indiegamedev
I've been fleshing out the subsystems for actors, user input, and Jolt physics integration.
#indiedev #gamedev #computergraphics #procedural #terrain #rendering
www.teepublic.com/t-shirt/6459...
#computers #amiga #pc #commodore #computerscience #computerart #computergraphics #computerprogramming #computergames #pixel #pixels #textmode #art #demoscene #retro #retrogaming #retrocomputing #technology #electronics #geek #gadgets #techie #tshirt #apparel
Whatay deep-dive 👌🏽👇🏽:
“Font Rendering From First Principles”, Brendan McCloskey (mccloskeybr.com/articles/fon...).
Via HN: news.ycombinator.com/item?id=4693...
#Fonts #Typography #FreeType #FontRendering #Text #ComputerGraphics #Graphics #Splines #BezierCurves
compute shaders are fascinating
#glsl #shader #graphics #computergraphics #graphicsprogramming #gamedev #realtime #screenshotsaturday
repost @marioecg on IG
Seven
#creativecoding #creativecodeart #glsl #shaders #webgl #computergraphics #generative #genart #procedural #algorithm
repost @invinixity on IG
Conway’s #GameOfLife
.
.
#shader #glsl #msl #kodelife #hexler #pixelart #pixel #pixelated #fragment #vertex #2D #cg #computergraphics #creativecoding #programming #gamedev #design #duotone
Rendering the Visible Spectrum
https://brandonli.net/spectra/doc/
#ComputerGraphics
Font Rendering from First Principles
https://mccloskeybr.com/articles/font_rendering.html
#font #typography #computergraphics
First attempt on reflections for my ray tracer🔥🔥🔥Since then I worked on the BSDF a lot :)
#raytracing #graphics #computergraphics #3d #cplusplus #graphicsprogramming #gamedev #indiedev #solodev #gaming #realtime #indiegamedev
Reference image produced by my ray tracer, no noise, perfect quality, (low) 10 fps
Noisy image produced by my ray tracer with stochastic light processing turned on. Image has visible grains, but fps is much higher - 60.
Building a ray tracer from scratch in C++. Left image is reference, right image employs stochastic light processing, making image noisier but x6 times faster.
#raytracing #graphics #computergraphics #3d #cplusplus #graphicsprogramming #gamedev #indiedev #solodev #gaming #realtime
SDF Editor in action - Added the ability to combine primitives into groups and duplicate them. Still a WIP, there are some bugs, but copilot works wonders (though not on the first try)!
Try it! github.com/EmberNoGlow/...
#Python #GLSL #IndieDev #Dev #Software #OpenSource #ComputerGraphics #3D
The result of the culling part of the rasterization course. Shown are two transparent cuboids with checkerboard textures and a plane with a random texture, also partially transparent.
The result after the final step of the rasterization course has been completed. The image shows a box with red (left), blue (back), green (right), white (bottom) walls. A box with a checkerboard pattern is on the left. A box with a random RGB texture is on the right. Above them is a slanted plane with varying transparency. In he back, here is another checkerboard plane. Everything is illuminated with a light source
Rasterization course 11: FINALE! We are adding culling. With this, we can reduce issues when rendering transparent objects. The pipeline is complete and we have implemented all basic features. OFC this is just the beginning, but you can already do a lot with it! #programming #computerGraphics #math
It looks like something from 2000. But Axes don't consume a lot of resources, thanks to analytical intersections ( iquilezles.org/articles/intersectors ).
link: github.com/EmberNoGlow/SDF-Model-Editor-Demo
#Software #OpenSource #IndieDev #Dev #Python #GLSL #PyOpenGL #OpenGL #ComputerGraphics
Enhance your presentations and videos with my custom backgrounds! Featuring a wide range of subjects, perfect for adding text or as stunning backdrops. Make your projects unique!
#CustomBackgrounds #UniqueDesigns #ComputerGraphics
mccarterphotography.smugmug.com/Graphic-Arts...
Result of the first step of the rasterization course part about blending. Blending was implemented. The image shows various boxes with different opacities drawn on top of each other. The transparency let's previously drawn objects shine through
Result of the first step of the rasterization course part about blending. Blending was implemented. The image shows a previous scene with two checkerboard cuboids, a random-texture plane and an additional flat plane in the front. All of these have various levels of transparency
Rasterization course 10: sibaku.github.io/site/rasteri... We add blending to the rasterizer! With that, we can draw transparent objects. For that we implement both the composition of fragments and we quickly go over the painter's algorithm. #programming #computerGraphics #math #gpu #learning
Result of the rasterization course part about lighting. Two checkerboard texutred cuboids are placed in space. Another plane with a randomized texture is intersecting the red cuboid. All objects look like light shines on them
Rasterization course 09: sibaku.github.io/site/rasteri... We take a quick detour to add some basic lighting with the well known Phong shading model. It's not physically correct, but easy to implement and looks pretty ok already! #programming #computerGraphics #math #gpu #learning
Enhance your presentations and videos with my custom backgrounds! Featuring a wide range of subjects, perfect for adding text or as stunning backdrops. Make your projects unique!
#CustomBackgrounds #UniqueDesigns #ComputerGraphics
mccarterphotography.smugmug.com/Graphic-Arts...
Result of the second step in the course's last part about 3D graphics. A plane with a random texture is at the bottom. A red checkerboard cuboid is in the back and a white checkerboard cuboid in the front. In this step, depth-information is used, so faces correctly occlude each other. Attributes are interpolated linearly in screen-space though, which leads to artifacts in the textures, as objecs are put ino perspective
Result of the perspective-corrected attribute interpolation. A plane with a random texture is at the bottom. A red checkerboard cuboid is in the back and a white checkerboard cuboid in the front. All textures are correctly displayed in perspective
Rasterization course 08: sibaku.github.io/site/rasteri... We implement perspective corrected attribtue interpolation! The first image is the last part's result, so you can compare. This chapter is a bit more math heavy, but the technique is imho pretty cool! #programming #computerGraphics #math
Visualization of what a perspective transform with perspective divide does. On the left side is a view frustum with a cube inside. The frustum is divided into sections of equal depth. On the right side is the same scene after the transform corresponding to the view frustum. The frustum has become a cube, with the formerly equally spaced sections taking up less space the farther they are from the camera origin. The cube inside isn't a cube anymore, it is squashed in the back. This effect produces what we percieve as perspective
Result of the first step in the 3D graphics part. A plane with a random texture is at the bottom. A red checkerboard cuboid is in the back and a white checkerboard cuboid in the front. In this step, no depth-information is used, so some faces of the geometry overlap other faces which should be closer
Result of the second step in the 3D graphics part. A plane with a random texture is at the bottom. A red checkerboard cuboid is in the back and a white checkerboard cuboid in the front. In this step, depth-information is used, so faces correctly occlude each other
Rasterization course 07: sibaku.github.io/site/rasteri... We finally go 3D! There isn't too much to do pipeline wise, so we quickly go through the parts that we use to create a 3D scene and then use them. We add a depth buffer and it already looks pretty neat! #math #computerGraphics #programming
Why We Say Sprites: The Word That Haunted Early Game Graphics
#WhyWeSaySprites #RetroComputing #GameDevHistory #Sprites #ComputerGraphics #TexasInstruments #TMS9918 #TI994A #Commodore64 #VICII #8bit #RetroGaming #HardwareDesign
theoasisbbs.com/why-we-say-s...
I created a sphere and a cube. It turned out quite realistic. Resolution Scale - 2.0, Samples - 1024, Intel HD Graphics 4000. Rendered in 3 minutes.
link: github.com/EmberNoGlow/SDF-Model-Editor-Demo
#GLSL #Python #Imgui #Rendering #Software #Dev #IndieDev #ComputerGraphics #Realistic
A picture from the first step of the attribute interpolation part. The linear interpolation algorithm is used to create a gradient from red to blue, as shown on the left, as well as creating numbers between 0 and 11 (excluded)
The result of the second step of the attribute interpolation part. Interpolation is added o the line rasterization. Each line endpoint has a different color which are interpolated in the shown image
The result of the last step of the attribute interpolation part. Attribute interpolation is added to triangles using barycentric coordinates. This is used to interpolate UV coordinates which then can sample textures. The image shows two rectangles, composed of two triangles each. The left rectangle shows a randomized RGB texture. The right rectangle show a checkerboard texture
Rasterization course 06: sibaku.github.io/site/rasteri... We interpolate attributes on lines and triangles. This is a really powerful addition together with shaders. We demonstrate this by adding textures to triangles via interpolated UVs! #math #computerGraphics #gpu #programming
The first step is implementing the clippin algorithm itself. In this image, the drawing was done by the native browser canvas API. Shown is a gray rectangle in the back, the source triangle. Red lines show the defined clipping planes. In white, the clipped triangle can be seen, which is a part cut out of the original gray triangle
The secont step is integrating the clipping algorithm into the rasterizer. In this image, the drawing was done with the current rasterizer. Red lines show the defined clipping planes. In white, the clipped triangle can be seen, which is a part cut out of the original triangle
The final step is extending the clipping algorithm to lines, which is just a simplified version of the one for triangles. Because of that, this ist just discussed without an exercise in the course. In this image, the drawing was done with the current rasterizer. Red lines show the defined clipping planes. In white, the clipped triangle can be seen, which is a part cut out of the original triangle Other red lines are shown which are clipped as well. As the rasterizer right now can only show one color per primitive, hese lines are also red
Rasterization course 04: sibaku.github.io/site/rasteri... We add arbitrary clipping planes! It's not fully needed right now, but we also just implemented line clipping! So we do it now, before adding some huge new features! We'll also use this feature without change in 3D! #math #computergraphics
The result of the first step. We determine the rectangular area in which the triangle is located in. We visualize this by coloring each pixel in the region red. In the example, we have two triangles and thus two rectangles
Screenshot of the interactive visualization of barycentric coordinates in a triangle. A point forms a triangle with each edge of the triangle. Barycentric coordinates corresponds to the ratio of the areas of these subtriangles and the total area (both signed). The image shows the point being in the middle center with each subtriangle having another color. The calculated values are displayed on the right side
The result of the second step. Barycentric coordinates are used to determine which of the pixels in the rectangles of step one are part of the triangle. The image shows two triangles. The left one is larger than the image and thus is cut off at the sides.
Rasterization course 03: sibaku.github.io/site/rasteri... We learn how to draw triangles, the most important shape in computer graphics! In the process, we derive and learn what barycentric coordinates are and use that knowledge to draw our shapes. #math #computergraphics
The first step of the line clipping algorithm. It shows a white rectangle in the middle. Outside are categorized and colored i in distinct colors. The four main regions are left, right, bottom and top. The overlapping regions of those are colored distinctly
Many red lines radiating outwards of the center, extending to the edges of the image. This is the result of the clipping, where the lines extend outside the image region, but now can be drawn correctly
Rasterization course 02: sibaku.github.io/site/rasteri... We learn how to clip lines against the output! After the last steps we could draw lines in all directions, but if they extend outside the image, it would result in an error. We fix that here! #math #computergraphics
Waking up in the Grand Canyon 🌅 Still doing optimizations and clean-ups before going back to ocean rendering.
#indiedev #gamedev #computergraphics #procedural #terrain #rendering
videozinho abordando um pouco sobre APIs gráficas e mostrando um exemplo prático com OpenGL
https://youtu.be/sa-zksxbfz0?si=0zuM5Ecax3cZavYv
#opengl #programming #clang #computergraphics
Here's where I'm at, combining some of the building blocks I've been working on recently: terrain LOD, atmosphere with aerial perspective, starmap, and auto-exposure.
#indiedev #gamedev #computergraphics #procedural #terrain #rendering
You wake up in the middle of the night, floating in space. No ground. No walls. Nothing to grab. Just you and the stars...
#indiedev #gamedev #computergraphics #procedural #terrain #rendering