hello vonnie

Love Begins
KIROKAZE
Xuebing Du
art blog(derogatory)
Aqua Utopia|海の底で記憶を紡ぐ

Product Placement
taylor price
Jules of Nature
Claire Keane
EXPECTATIONS
Fai_Ryy
Cosmic Funnies

"I'm Dorothy Gale from Kansas"
Keni

tannertan36
seen from Argentina

seen from Brazil

seen from Brazil

seen from Italy

seen from United Kingdom
seen from Ukraine

seen from Denmark
seen from Senegal

seen from Indonesia

seen from Vietnam

seen from Spain
seen from Ukraine
seen from United States

seen from Latvia

seen from France
seen from Mexico

seen from Austria
seen from United Kingdom
seen from United States

seen from Malaysia
@bully-girl

Anya is live and ready to show you everything. Watch her strip, dance, and perform exclusive shows just for you. Interact in real-time and make your fantasies come true.
Free to watch • No registration required • HD streaming
I optimized the raytracing of gaussian metaballs. Here we have a negative ball followed by a positive ball (they are segments since I show them in a single dimension). The pink graphic shows the pseudo-distance field, function of the point in space (the space is the Real line here), blue is y=0, red is y=1, green is y=-1.
The first graph shows how the sphere tracing (represented by dark green circless) evolved before when I only normalized the field with the lipschitzian constant. There are a lot of steps until we reach the intersection with y=0 (the boundary with the object), so the algorithm was slow.
The second graph shows the same thing, but this time I conditioned the field to make it closer to a true distance field. There are far less steps so it’s faster. However, this conditioning only works on a group of positive balls. You can see the field is not continuous because we only work with positive balls first. When we reach a certain threshold, we fall back on the old method which account for all the balls, but is efficient enough to be used when we’re close to the object.
Not shown here, is what happens when the algorithm starts at a pretty far distance (around 30 units). Floating point errors screws up everything because exponentials and logarithms aren’t friendly at all.
This is a new set where I experiment metaballs based on Perlin noise, and more based on electrical fields. You can find out more about it on the internet.
Usually, implementations of this family of objects use the marching cubes algorithm. This is indeed quite efficient when using a rasterizer, which is the rendering model used by your graphic card and DirectX/OpenGL. It’s still possible to use it in raytracing, but it’s an approximation, and you end up with a polygon mesh or a voxel buffer. I don’t like them, so I’m left with two solutions. Either I run a volumetric raytracing with a fixed step (this is raymarching, still an approximation), or I keep using the distance field raytracing I was already using so much before (this is sphere tracing). The only problem is, these things are NOT distance fields. The electrical field is a bunch of 3D gaussian “curves” mashed together, and the object is defined when its value goes above a certain threshold. Fundamentally the same for the 3D Perlin noise.
The solution here is to find out the lipschitzian constant of the field/noise, and divide it by said constant. It becomes a pseudo-distance field where you can evaluate the field/noise value at some point, and you’re 100% sure the object is placed FURTHER than this point. It fits in the sphere tracing algorithm, but in the end, it actually works like raymarching, except the step is dynamic and never overshoots behind the object.
Last part of the set.
Up until now, all metaballs were harmonic metaballs, ie the geometry of the object was a pseudo-distance field whose value is the harmonic mean of the primitives’ distance fields. Here I experiment twice with an arithmetic mean instead. The third image is the same as before, except the light source intensity decreases quadratically.
Second part of the set. More volumetric rendering. I also introduce the Schlick material as a citizen of the uncountable amount of Physically Based Rendering methods, replacing the less realistic Phong material (I still keep it in a corner though).
Also, more CSG, more metaballs (though now, it’s more like meta-sphere/torus/tube), and metaballs in CSG (this is how I created the black glass). The smoke now works as planned (absorption works, emission works, scattering is not implemented).

Anya is live and ready to show you everything. Watch her strip, dance, and perform exclusive shows just for you. Interact in real-time and make your fantasies come true.
Free to watch • No registration required • HD streaming
Here is the first part of the second set (why is there a limit of 10 pictures ? ;_; ), showing some progress while I was piling up features and trying to figure out how to fix and tweak them. The time range for the entire set spans from March 22 to April 9. Lighting and aspect ratio had been fixed beforehand.
New things that appear here are proper transparency, volumetric rendering, normal mapping.
I was wondering where to put my raytracing gallery, and then I remembered I had a tumblr account. Brilliant. These two are actually stereoscopic images (crossed vision). The first one uses harmonic metaballs (February 25), the second one uses CSG (March 8 -- the lighting and aspect ratio are wrong, but don’t mind).
Every rendered image posted here is entirely generated with my own software unless stated otherwise. I usually program with C++, and I’m fond of Common Lisp too. I’ve also a bit less substantial experience with Java, javascript, and much less experience (or rather, I haven’t used them for a while) with SPARC and x86 ASM, TI-Basic.
Regarding the raytraced scenes, I’m using a few libraries such as Boost, GLM, libpng. I build with autotools. Writing a raytracer program is part of the curriculum at the university I’m currently in. The project already ended, but I want to continue working on it.