小编Spa*_*Kek的帖子

我如何获得无限小的数字(对于分形)

我正在使用 OpenGL 使用 C++ 对 Mandelbrotset 进行编程,但遇到了一个问题:我发送到着色器并在着色器中计算的浮点数只能容纳一定数量的小数位。因此,如果我放大得太远,它就会变得像素化。

我想过创建自定义数组函数,但我无法真正弄清楚。除了使用数组还有其他方法吗?如果不是,我如何使用数组来计算东西,就好像它们是单个数字一样?(例如 arr[1,2] x arr[0,2] 应该给出与仅计算 1.2 x 0.2 相同的输出)

in vec4 gl_FragCoord;
 
out vec4 frag_color;
uniform float zoom;
uniform float x;
uniform float y;
#define maximum_iterations 1000

int mandelbrot_iterations()
{
    float real = ((gl_FragCoord.x / 1440.0f - 0.5f) * zoom + x) * 4.0f;
    float imag = ((gl_FragCoord.y / 1440.0f - 0.5f) * zoom + y) * 4.0f;
 
    int iterations = 0;
    float const_real = real;
    float const_imag = imag;
 
    
    while (iterations < …
Run Code Online (Sandbox Code Playgroud)

c++ opengl glsl fractals mandelbrot

4
推荐指数
1
解决办法
3666
查看次数

标签 统计

c++ ×1

fractals ×1

glsl ×1

mandelbrot ×1

opengl ×1