Я намагаюся намалювати простий 3D-об’єкт, згенерований Google SketchUp 8 Pro на моєму додатку WebGL, модель - простий циліндр.
Я відкрив експортований файл і скопіював положення вершин, індекси, нормалі та координати текстури у файл .json, щоб мати можливість використовувати його у javascript. Здається, все добре працює, за винятком координат текстури, які мають досить великі значення, наприклад 46,331676, а також негативні значення. Тепер я не знаю, чи помиляюсь, але хіба 2D текстурні координати повинні бути в діапазоні від 0,0 до 1,0?
Ну а малювання моделі за допомогою цих координат текстури надає мені абсолютно дивний вигляд, і я можу зрозуміти текстуру належним чином лише тоді, коли я дуже близький (не дуже я, кулачок) до моделі, як ніби текстура була шалено зменшено в розмірах і нескінченно повторюється на обличчях моделі. (так, я використовую GL_REPEAT для цієї обертання текстури)
Що я помітив, це те, що якщо я отримаю всі ці координати і поділяю їх на 10 або 100, я отримую набагато «нормальний» вигляд, але все ще не в діапазоні від 0,0 до 1,0.
Ось мій файл json: http://pastebin.com/Aa4wvGvv
Ось мої GLSL шейдери: http://pastebin.com/DR4K37T9
А ось файл .X, експортований SketchUp: http://pastebin.com/hmYAJZWE
Я також намагався намалювати цю модель за допомогою XNA, але все ще не працює. Використовуючи ці шейдери HLSL: http://pastebin.com/RBgVFq08
Я спробував експортувати ту саму модель у різні формати, коладу, fbx та x. Усі ці результати дають одне і те ж.