Estou tentando criar uma esfera quadrada com base em um artigo , que mostra resultados como este:
Eu posso gerar um cubo corretamente:
Mas quando eu converter todos os pontos de acordo com esta fórmula (da página vinculada acima):
x = x * sqrtf(1.0 - (y*y/2.0) - (z*z/2.0) + (y*y*z*z/3.0));
y = y * sqrtf(1.0 - (z*z/2.0) - (x*x/2.0) + (z*z*x*x/3.0));
z = z * sqrtf(1.0 - (x*x/2.0) - (y*y/2.0) + (x*x*y*y/3.0));
Minha esfera fica assim:
Como você pode ver, as bordas do cubo ainda se destacam demais. O cubo varia de -1
a +1
em todos os eixos, como diz o artigo.
Alguma ideia do que está errado?
1
A sua implementação também contém o problema "x = x ..." ou é apenas aqui?
—
snake5
Recursos visuais fantásticos. Obrigado por incluí-los.
—
Doppelgreener
Para responder à pergunta no título, você pode normalizar os vértices do cubo para torná-lo uma esfera. A distribuição dos vértices provavelmente será diferente do método vinculado.
—
msell
Relacionado: gamedev.stackexchange.com/questions/7189/…
—
MichaelHouse