2013-04-07 2 views
0

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

enter image description here

На рисунке показаны три мои проблемы. Во-первых, мой код цилиндра будет случайно пропускать 90 градусов, чтобы создать срезы из цилиндра, которые выглядят красиво, а когда два из них происходят, у второго есть текстура растяжек, которую вы видите здесь. Первый фрагмент выглядит отлично. Это номер 2 на изображении.

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

Третья проблема немного сложнее заметить, хотя ее проще всего увидеть на номере 1, если вы посмотрите сверху, текстура намного шире, чем внизу, и я не знаю почему.

Вот мой исходный код для создания и текстурирования цилиндра: http://pastebin.com/hgMhqScg

Вот код, который генерирует текстуры и код, который хранит и отображает реальные вершины: http://pastebin.com/cUuEBmTrhttp://pastebin.com/GrytFsf1

ответ

0

Оказывается, проблема для # 1 был здесь:

if(i < v2UVA.length-1) 

переключатель, что

if(i < v2UVA.length) 

И эта проблема уходит. Не уверен, почему растягивание происходит, но я просто ограничил максимальное сокращение до 1, и он отлично работает.

Смежные вопросы