Megalomaniak It is trigonometry, just using less data more intelligently. Think of a normal bezier curve, even a curve drawn in the Godot menu is a good example:

In this case you have 3 points you can move around in the editor, and between them you see a line. This line is smooth, not a straight line: You obtain this hump automatically just by defining the 3 points, each pixel on the line knows where it should be located based on its position in 2D space. Therefore you can only add 3 points to get a round bump, instead of needing to have say 16 points with straight lines between them to manually simulate the curve yourself and do so at a lower accuracy for more cost.

My idea was what it would have been like if the GPU and OpenGL could do this in 3D space with vertices / surfaces in meshes: Instead of drawing straight triangles between vertices, treat each vertice as a curve point and draw 2D bezier curves between them. Just as for a 2D curve you know where a pixel is supposed to be between vertices by calculating the X + Y coordinates against them, in 3D you'd do the same based on X + Y + Z coordinates.

Like I said I'm aware there's likely a good reason why this never happened, and whatever the reason it's likely too late now unless GPU manufacturers invent a new 3D technology (and we just got Vulkan). Godot like other engines is limited by the capabilities of the rendering technology it works with so it can't do this at hardware level even if it tried... which I guess makes me thinking about this a bit bizarre since it's pointless, didn't want this to get side-tracked from parallax but it's a concept from the same book of magic tricks that could have been used to better allow the illusion of infinite detail.

xyz Infinite detail both is and isn't possible, and I think fractals like the Mandlebrot pattern illustrate it best: Each fractal is a mathematical formula, usually a very short one that only takes a few lines of code to define, yet when running it you get all those pixels on the screen. The only reason it isn't infinite is that you have a finite number of pixels in your monitor, but each pixel calculates itself at a particular position from a formula that is itself infinite and only bound by the lowest / highest number the CPU and RAM can define.

As such I often wondered what it would be like if we'd have done the same with 3D. This can include a voxel based approach which is easier, there's actually a lovely software called Mandlebulber that does this with amazing results but sadly it's very slow since it's probably CPU based. But the concept could theoretically be used even with faces in conventional meshes if we interpreted them differently, such as allowing the a heightmap to change where a point on the surface is interpreted between its vertices instead of reading it as a flat triangle.

    MirceaKitsune Fractals are not infinite detail. They are just potentially infinite subdivision. You can't really use fractals as a modeling tool. They are unwieldy and at the same time repetitive. They get boring very fast.

    As for using non linear rendering primitives, like bezier patches for example, if you try to implement it you'll quickly see it's almost impossible to use them in such manner. There's a myriad of reasons why a linear primitive was chosen and it's not a matter of legacy. I could go into specifics but I won't until you implement a basic software rasterizer. It'll clear you mind and bring you out of the fantasy land 😉

    xyz It's because of digitalization, i.e. because we're doing the thing using a digital computer.

    I, too, think it's about time we moved on to quantum bio-computers and analog-vector monitors.

    • xyz replied to this.

      Tomcat I, too, think it's about time we moved on to quantum bio-computers and analog-vector monitors.

      Why?

        xyz for the semi-retro bio-punk cool factor?

        MirceaKitsune But the concept could theoretically be used even with faces in conventional meshes if we interpreted them differently, such as allowing the a heightmap to change where a point on the surface is interpreted between its vertices instead of reading it as a flat triangle.

        Ok, I think you are not understanding us here... We are saying that you inevitably have to decimate and rasterize to limit mesh the idealized mathematical curved surface no matter what. It's how the maths work out and the triangle is the most basic 3D element to do this with. Even CPU/Software rendered Catmull-Clark SDS still ultimately uses triangles to rasterize the limit mesh output. There's no escaping it. But as CC SDS/Reyes proved you can very successfully do 1 to 5 tris(or more even) per pixel to get a virtually infinite detail level if you have the data to render/rasterize.

        Basically Catmull-Clark subdivision surfaces with vector displacement would probably be for all intents and purposes what you are after here and you're just trying to reinvent the wheel here.

        edit: speaking of OpenSubdiv...
        https://github.com/godotengine/godot-proposals/issues/784
        https://github.com/tefusion/godot-subdiv

          xyz Why?

          Well, you yourself have listed the disadvantages of digital (binary) technology:

          xyz Infinite detail (whatever that actually means) is simply not possible using a digital computer. It's just a fantasy.

          which means it's time to decisively leave behind the technology of the past and move forward. We should not limit ourselves to the possibilities of the previous millennium.

          Megalomaniak for the semi-retro bio-punk cool factor?

          On a different technological level. Just like with electric cars, which appeared before gasoline-powered cars and were abandoned, but now they have triumphantly returned.

          • xyz replied to this.

            Tomcat Well, you yourself have listed the disadvantages of digital (binary) technology:

            I don't see those as disadvantages but merely as characteristics. I think the present computing paradigm is doing just fine. And if it ain't broke, no need to fix it 🙂

            Tomcat triumphantly

            I wouldn't be so hasty with that conclusion about EVs

            Megalomaniak for the semi-retro bio-punk cool factor?

            I yield! There's no defense against the cool-factor argument 😹

              xyz And if it ain't broke, no need to fix it

              If this approach always won out, we'd still be living in caves.

              • xyz replied to this.

                Tomcat If this approach always won out, we'd still be living in caves.

                If the opposite of this approach always won, "we" would end up a civilization that sacrifices every bit of joy on the altar of unconditional progress.
                I wouldn't mind living in a cave btw. Have you ever been in one? It's quite comfy. Every single piece of architecture ever built is just an attempt to artificially re-create the original living-in-a-cave experience.

                  xyz I wouldn't mind living in a cave btw. Have you ever been in one?

                  Uh… are you familiar with the term "speleology"? I was into it when I was younger. And karst caves and catacombs. So stories about the delights of cave life don't work on me at all — I know the reality from personal experience. Caves with toilets, hot water and central heating?

                  If the opposite of this approach always won, "we" would end up a civilization that sacrifices every bit of joy on the altar of unconditional progress.

                  The joy is in utilizing the fruits of progress. Reasonable, of course. With hedonism, certainly.

                  The humor is that now I am considering options to move from the city "to nature", including caves. But not out of love for primitive life, but because of the political situation. And I am not very happy about it, as I am well aware of the accompanying problems.

                  • xyz replied to this.

                    Tomcat Not sure how many fruits of hedonism can be extracted from non existent quantum computers and previous millennium vector displays though.

                      Tomcat but because of the political situation

                      See that's a bummer with lots and lots of technological progress. It creates a lot of power. And all that power can eventually end up in the hands of your political opponents. Who can turn into tyrants. This includes the power to compute. Which can turn into power to surveil.
                      Something to be aware of when yelping for more progress.

                      xyz Not sure how many fruits of hedonism can be extracted from non existent quantum computers and previous millennium vector displays though.

                      A lot. But why the previous one? Simply technology has made a circle (or rather a spiral) and can return to the idea on a new level.

                      And all that power can eventually end up in the hands of your political opponents.

                      We should not worry about it. Especially looking at the current situation. In brief, in this case everything happens because of the clinical stupidity of our (Russian) government. How this happened is a long and very political topic. But we can confidently say that the perpetrators of these events are simply unable to understand and use new technologies (they don't really understand the technologies of the last century). So the result is already clear. "Who will win is clear. It is not clear how many more will die."

                      Soviet military technology has always lagged behind Western technology precisely because of its secondary nature. I could tell many anecdotes from reality on this subject.

                      I forgot to add about the electric light in the caves.

                      • xyz replied to this.

                        Tomcat You're hijacking the thread with contemporary political crap again. I'd much rather return to discussing (im)possibilities of realistic parallax that pops out of surface geometry.

                          xyz You're hijacking the thread with contemporary political crap again.

                          And all I did was try to answer the question:

                          xyz Why?

                          I'd much rather return to discussing (im)possibilities of realistic parallax that pops out of surface geometry.

                          It seems to have already been decided that this requires a breakthrough in technology?

                            Tomcat It seems to have already been decided that this requires a breakthrough in technology?

                            of ten, fifteen years ago. I guess.

                            Tomcat It seems to have already been decided that this requires a breakthrough in technology?

                            No, it was "decided" that the OP needs to learn some more about how "the technology" works before passing judgements or suggesting innovations. But we can still go over some finer points there 🙂

                              Megalomaniak Obviously you have to decimate the end result somehow, my thought was simply that you could do so by pixel rather than vertice. OpenSubdiv is indeed close, I heard of it and remember Blender was waiting to get it for a long time... not sure if it's the same thing, but what I'm thinking of can pretty much be summed up as "GPU side subdivision surface". Thanks for mentioning Reyes too, I wasn't aware of that one and it seems very close: The image of the pot is exactly the result I was thinking of for this thread, what I was hoping deep parallax could do as you look at its edges.

                              xyz Definitely not passing judgment on anything! As I said I understand there's probably a reason why this didn't catch on: I just suspect it must be mathematically possible, either it was too inefficient or something else kept GPU's or OpenGL from doing it. It's just one of those things that gets you wishing, like when you play with parallax and see how realistic the depth looks but then you look at an edge and it's still sharp and you're like "was there really no way they could have done this too" 😄

                              • xyz replied to this.

                                MirceaKitsune As I said I understand there's probably a reason why this didn't catch on: I just suspect it must be mathematically possible, either it was too inefficient or something else kept GPU's or OpenGL from doing it

                                Who do you think is doing it for subdiv surfaces in Blender? It's likely a compute shader in your GPU. The concept of non-linear primitives is just not universal enough (nor algorithmically efficient enough) to be worthy of implementation in the low level rasterization pipeline of a standard GPU, whereas triangles are.

                                Using triangles, you can do "infinite" levels of subdiv surface tessellation in real time without problems. Effectively appearing perfectly smooth and running entirely on the GPU, exactly like you wish for. You just need to code it yourself because it doesn't come pre-packaged inside graphics cards, for the reason I mentioned above.