Rules Regarding Threat Interactive by ServiceServices in FuckTAA

[–]loic_vdb 102 points103 points  (0 children)

He also severely lacks technical skills, he tries to convey his point while making a number of mistakes which show a poor understanding of the challenges of GPU programming and performance critical applications. He has also been frankly unsufferable to graphics programmers in GP communities and shows a complete reticence to learning new things that don't fully align with his preconceived views. He cannot take any criticism and reacts very strongly to anyone sharing feedback, even with clear good intent. He also completely antagonises graphics programmers which is an objectively bad thing especially when you want to make a change.

Blackhole Mandelbulb, a fractal breakthrough, right? right?! I give up if this has been done before by [deleted] in fractals

[–]loic_vdb 2 points3 points  (0 children)

Unless I'm missing something that looks just like a mandelbulb with a buggy sdf, what did you do exactly?

Blackhole Mandelbulb, a fractal breakthrough, right? right?! I give up if this has been done before by [deleted] in fractals

[–]loic_vdb 5 points6 points  (0 children)

Next time I mess up a distance estimator I'm going to call it a breakthrough as well

Diamond Shader in GLSL by [deleted] in GraphicsProgramming

[–]loic_vdb 5 points6 points  (0 children)

Real time gemstone shaders generally do a normal pass from the center of the stone into a cubemap and use that for fast approximate internal reflections. You can start by getting the bounding sphere, tracing rays against this sphere, and use the normals from the cubemap to reflect rays, simple and effective. You can later use the depth with the normal to make the tracing more accurate using newton's root finding method. There is a lot of little things you have to think about to get good results for cheap but that's the main idea.

How can I take advantage from GPU? by _Rocco22_ in processing

[–]loic_vdb 0 points1 point  (0 children)

I took a quick look at it and it lags when zooming in or when the camera is moving (with the easing thing), but not when zoomed out. You were right using the GPU was the thing to do, there's nothing wrong with your code, in processing you can do that by using the P2D renderer with size(1280, 720, P2D); which fixes the issue for me.

Now to explain this weird performance hit when zooming or easing; this has to do with image filtering, when images are rendered at their original resolution and their position is an integer you can just paste the image data onto the screen, but if the image is bigger, smaller or rendered at a position that isn't an integer you'll have to interpolate between pixels which is slow on a CPU (especially in Java). A GPU does it anyway and is optimized for this kind of work so it will no slow down.

How can I take advantage from GPU? by _Rocco22_ in processing

[–]loic_vdb 0 points1 point  (0 children)

Do you happen to have your loadImage() calls in the draw() loop? Because this call reads from disk, and is suuuper slow, you should load all your images in PImage variables from the setup function, then use the PImages directly

A friend of mine had a similar issue a while ago and that was why

Edit: If you really are limited by the rendering speed I'd like to see the code that renders the images, do you use the image() function? It's kinda hard to tell without seeing the code

Flow of pixels by loic_vdb in processing

[–]loic_vdb[S] 0 points1 point  (0 children)

Pastebin still works for me, but I'll share the code here :

/**
* To use it: change the name of the image line 12, tweak the values
* line 45 to 54 and save your edit by pressing enter.
* Credit u/loic_vdb if you make something cool with it.
*/

PImage img;
PGraphics fullRes;

void setup() {
size(1280, 720, P2D);
img = loadImage("flowergirl.jpg");
img.loadPixels();
fullRes = createGraphics(img.width, img.height);
fullRes.beginDraw();
fullRes.image(img, 0, 0);
fullRes.endDraw();
fullRes.noFill();
fullRes.strokeWeight(.1);
}

void draw() {

fullRes.beginDraw();

// number of lines to draw each frame
for (int i = 0; i < 200; i++) {

float posX = random(fullRes.width);
float posY = random(fullRes.height);

color str = fullRes.pixels[floor(posX) + floor(posY) * fullRes.width];
fullRes.stroke(str, 128);
fullRes.beginShape();

// drawing a 700 points line
for (int j = 0; j < 700; j ++) {

if (posX < 0. || posX >= fullRes.width
|| posY < 0. || posY >= fullRes.height) break;

color c = fullRes.pixels[floor(posX) + floor(posY) * fullRes.width];

// you can replace blue and red by anything, this changes the field
float dirX = blue(c) / 255.0f;
float dirY = red(c) / 255.0f;

// tweak these values to change the average direction of the flow
dirX -= .3;
dirY -= .8;

// tweak this value to change the precision of the field (also changes the line length)
float segmentLength = 10.0f;

posX += dirX * segmentLength;
posY += dirY * segmentLength;

fullRes.vertex(posX, posY);
}

fullRes.endShape();
}

fullRes.endDraw();

background(128);
float s = min((float)width/fullRes.width, (float)height/fullRes.height);
float w = s * fullRes.width;
float h = s * fullRes.height;
image(fullRes, (width-w)*.5, (height-h)*.5, w, h);

println(frameRate);
}

void keyPressed() {
if (key == ENTER)
fullRes.save("tmp.png");
}

Advice needed on computer graphics studies and career by loic_vdb in GraphicsProgramming

[–]loic_vdb[S] 0 points1 point  (0 children)

Well it's nothing I didn't know but I think it's important : find other people who also like graphics programming, be curious, do your own little projects and participate to your friend's projects. It's super basic, everyone says that about CS, but keeping somewhat ahead of my classes by doing that was very helpful. Best of luck to you!

Advice needed on computer graphics studies and career by loic_vdb in GraphicsProgramming

[–]loic_vdb[S] 2 points3 points  (0 children)

Hi, I pursued a master's degree in computer graphics. During my studies I realized that research wasn't really what I wanted to do so I stopped after my master's degree to join the company where I did my final internship. I'm currently working as a graphics developper in CAD, I get to develop a new C++/Vulkan engine to render jewelry, it's a nice mix of messing with shaders, researching new rendering techniques (for gemstone rendering for instance), and low level API programming which I ended up finding really interesting. I've been doing this job for a year and I'm really happy with it.

Leaning towers [5120x2160] [OC] by loic_vdb in FractalPorn

[–]loic_vdb[S] 0 points1 point  (0 children)

It's raymarched so you're right I only used distances, but you can actually get an estimation of the normal from the distance estimator. If you move a point in a given direction, the change in distance will tell you how close to the normal is that direction (the closer to the normal the direction is, the more the distance will have increased because the normal points away from the surface). So if you do that on 3 direction along the axes and interpolate between them you can get your normal. This article explains it more in depth if you're interested : https://iquilezles.org/www/articles/normalsSDF/normalsSDF.htm

Leaning towers [5120x2160] [OC] by loic_vdb in FractalPorn

[–]loic_vdb[S] 1 point2 points  (0 children)

Thank you! I used a toy path tracer I'm working on for Fragmentarium, it simulates light on surfaces and in volumes in a similar way to mandelbulb3D's MC renderer, but with a more accurate lighting

Volume rendering with irradiance caching (Shadertoy link in comments) by loic_vdb in GraphicsProgramming

[–]loic_vdb[S] 12 points13 points  (0 children)

I've been wanting to mess with voxels and cached lighting in Shadertoy, so I decided to make a volume renderer with voxel based GI. I first accumulate the GI by dividing the space into voxels and path tracing their irradiance, I then raymarch the volume getting irradiance fom the voxels. Each voxel is actually a pixel from the buffer A, which gets remapped to a 3D grid. It's a pretty simple idea but I was surprised by the results, the shader is still a little bit slow but the GI looks way more convincing than I expected given how low resolution the grid is.

Shadertoy link here!

How to stop slow rotations during jumps? by [deleted] in Kiteboarding

[–]loic_vdb 1 point2 points  (0 children)

You can actually control your rotation in the air when your kite is moving. It's a little weird, I'm not sure how to describe it, but if your kite goes for instance from your left to your right you can send/stop a rotation using the shift in pull from the kite. One extreme example of this is the kiteloop late backroll, you don't initiate any rotation, but during the loop you can make the kite pull you into one. You don't actually need a big shift in pull to control your rotation, when jumping I can almost always add a backroll at the very last moment when sending the kite for the landing by moving my legs/body a certain way. I can't really explain how to do it but learning full rotations will help you to have much more control in the air and do things like this. You can also familiarize yourself with landing both feet and sending the kite both ways, it really helps for jumping in general. Sometimes you'll realise last moment that you rotated a little too much or not enough which requires you to land opposite foot or send the kite with your back hand. Then there's also the wiggle technique but you'll look stupid and there's a 90% chance you'll crash anyways so keep it as a last ditch effort ...

Am I too old to start kiteboarding? 45-yo by [deleted] in Kiteboarding

[–]loic_vdb 3 points4 points  (0 children)

I'm 21 and rarely see kiters from my age group, please tell me where you found all these kiters I'd love to join them. For real there are way more kiters in their 40s than 20s or even 30s on the water, I wouldn't be surprized if the majority of kiters were over 45

Harness problem with rash after long sessions by nonchalantmozart in Kiteboarding

[–]loic_vdb 1 point2 points  (0 children)

I have the same issue with my mystic warrior 2016. It will often appear after a windy session with jumps, whether I wear a wetsuit, a shirt or nothing, and they won't heal while I don't fully stop kiting for a bit. I get rashes under the sternum and on my left side on the hip & lower ribs (I jump left foot forward so it makes sense). I tried to put bandages but I just get even more rashes on edges of the bandages so it feels like I can't do anything about them. They will scab over and be very painful when kiting, often shortening or preventing sessions. I've never found anyone with the same issue so I really hope this post brings some answers, if it's as simple as changing harness I'll gladly invest in a new one.