Трехмерная игровая геометрия

У меня есть простая игра, в которой используется представление трехмерной сетки, что-то вроде:

Blocks grid[10][10][10];

Человек в игре представлен точкой и вектором взгляда:

double x,y,z, dx,dy,dz;

Я рисую сетку с 3 вложенными for loops:

for(...) for(...) for(...)
   draw(grid[i][j][k]);

Очевидная проблема с этим - когда размер сетки увеличивается в пределах сотен, fps резко падает. С некоторой интуицией я понял, что:

  • Блоки, которые были скрыты другими блоками в сетке, не нуждаются в визуализации
  • Блоки, которые не были в поле зрения человека, также не нуждаются в визуализации (т. Е. .блоки, которые были позади человека)

У меня вопрос, учитывая сетку [] [] [] , x, y, z человека и вектор взгляда dx, dy, dz , как я мог определить, какие блоки нужно рендерить, а какие нет?

8
задан Andrew Liu 16 February 2012 в 03:00
поделиться