Список координат пикселей внутри треугольника - PullRequest
4 голосов
/ 19 августа 2011

Я делаю игру на C # и XNA, и я пытался придумать метод рендеринга массивных ландшафтов без использования огромного количества памяти или передачи жесткого предела в XNA.

Мое решение до сих пор заключается в создании массивной карты высот, и эта карта высот загружается в память в начале игры на этапе инициализации.Затем ландшафт генерируется только ближе к камере.Это достигается путем проецирования треугольника, вершина которого является символом, а две другие конечные точки простираются по сторонам области просмотра персонажа.Затем все пиксели внутри этого треугольника на карте высот визуализируются и отрисовываются в игре, таким образом, воспроизводится только то, что видно.

Проблема в том, что я успешно нашел (думаю, не могу проверить, покаЯ получаю рендеринг местности) три вершины треугольника.Теперь мне нужно найти список координат для каждого отдельного пикселя внутри этого треугольника - только целые числа, потому что мне просто нужен список пикселей для рендеринга.

Я знаю, это звучит немного запутанно, поэтому вотСуть этого:

У меня есть изображение, и я проецирую треугольник на это изображение.Единственное, что я знаю об этом треугольнике, - это три вершины.Мне нужен список пикселей внутри этого треугольника.

Я гуглял где-то около 20 минут, и я подумал, что я в порядке и выложу что-то здесь из-за того, что япытаться сделать это не так уж часто.Если я найду ответ, я обязательно опубликую его здесь.

Но до тех пор кто-нибудь может сказать мне, как это сделать?

Редактировать: AФормула, пожалуйста.Если вы можете предоставить формулу или алгоритм и объяснение, это было бы просто идеально.

Редактировать: Я отправил новый вопрос, так как я отказался от этого метода рендеринга.большие территории.Вопрос здесь .

1 Ответ

3 голосов
/ 19 августа 2011

Начните здесь:

http://mathworld.wolfram.com/TriangleInterior.html

Одна из нетривиальных проблем, не упомянутых там, с которой вам приходится сталкиваться, это пикселизация вдоль границы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...