J'écrivais un moteur voxel quand j'ai eu ce problème bizarre avec les visages. Donc quand je m'éloigne du terrain, tout se casse. Je n'ai même pas une idée de comment décrire le problème, je vais poster quelques captures d'écran.Voxel Engine, les visages sont mis en veille lorsque la caméra fait un panoramique
camera_projection = bb_perspective(bb_toRadiansReal32(70.0f), ((r32)WINDOW_WIDTH/(r32)WINDOW_HEIGHT), 0.1f, 1000.0f);
j'ai découvert quand je joue avec la deuxième à la dernière valeur et de changement qui à un problème de 1.0f en partie disparaît. Mais je ne veux pas garder cette valeur à 1.0f.
I poster définition de cette fonction:
static bbMat4 bb_perspective(r32 fov, r32 aspect, r32 near, r32 far) {
bbMat4 ret(1.0f);
r32 range = near - far;
r32 tan_half_fov = tanf(fov/2.0f);
ret[0][0] = 1.0f/(tan_half_fov * aspect);
ret[1][1] = 1.0f/tan_half_fov;
ret[2][2] = (-near - far)/range;
ret[2][3] = 2.0f * far * near/range;
ret[3][3] = 0.0f;
ret[3][2] = 1.0f;
return ret;
}
Je n'ai complètement aucune idée de la façon de traiter cette question.
Pouvez-vous expliquer ce que nous voyons dans les captures d'écran et ce qui ne va pas? Pourquoi ne voulez-vous pas changer la valeur znear à une valeur qui fonctionne? Le réglage des plans de clipping proches et lointains à des valeurs raisonnables est essentiel. Quelle profondeur de bits utilisez-vous pour votre tampon de profondeur? –
Va-t-il disparaître si vous choisissez une gamme plus petite de près à lointain, disons 1.0f à 1000.0f? –
Pas complètement, je dois aller plus loin avec caméra pour revoir ce bug. – Brajanowski