Модератор: Модераторы
OpenGl SDL загрузка текстуры
Ошибка при генерации текстуры — TextureImage.W,
TextureImage.H — Illegal qualifer. Как исправить?
- Код: Выделить всё
// Загрузка картинки и конвертирование в текстуру
function LoadGLTextures : Boolean;
var
// Создание пространства для хранения текстуры
TextureImage: PSDL_Surface;
texture : GLuint; // Место для одной текстуры
begin
texture:=0;
// Загрузка картинки
TextureImage := SDL_LoadBMP('images/NeHe.bmp');
if ( TextureImage <> nil ) then
begin
// Создадим текстуру
glGenTextures( 1, @texture );
glBindTexture( GL_TEXTURE_2D, texture );// Генерация текстуры
glTexImage2D( GL_TEXTURE_2D, 0, 3, TextureImage.W,
TextureImage.H, 0, GL_rgb,
GL_UNSIGNED_BYTE, TextureImage.pixels );// Линейная фильтрация кошда образ больше чем текстура
glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR );
// Линейная фильтрация кошда образ меньше чем текстура
glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR );
end
else
begin
TerminateApplication;
end;// Освобождаем память от картинки
if ( TextureImage <> nil ) then
SDL_FreeSurface( TextureImage );result := Status;
end;
-
Slavikk - постоялец
- Сообщения: 208
- Зарегистрирован: 15.01.2007 22:34:52
- Откуда: Из лесов…
-
- Профиль
- Сайт
divinusproject » 31.01.2007 22:22:22
А размер загружаемого изображения какой? Размеры текстуры должны быть степенью двойки, а поскольку у тебя для задания размеров текстуры используются размеры изображения, то они должны быть степенью двойки.
http://imaginglib.sourceforge.net
— отличные библиотеки для работы с изображениями, например, позволяет загрузить из png прямо в текстуру ogl.
PS А какое отношение это имеет к Lazarus? Переместить в другую тему!!!
- divinusproject
- новенький
- Сообщения: 49
- Зарегистрирован: 16.05.2006 08:25:02
- Откуда: Барнаул
-
- Профиль
- Сайт
- ICQ
Slavikk » 31.01.2007 23:56:51
Рисунок кратен степени двойки, делаю всё на лазаре с sdl компонентом — поэтому загружать могу только через SDL.
-
Slavikk - постоялец
- Сообщения: 208
- Зарегистрирован: 15.01.2007 22:34:52
- Откуда: Из лесов…
-
- Профиль
- Сайт
FedeX » 01.02.2007 07:41:54
Если работаеш с SDL грузить картинки можеш чем хочеш.
PSDL_Surface токо для удобства. Функциям ОГЛ по сути важно токо ширина, высота, битность изображения и указатель на область памяти где оно находится. Я, если вручную загрузить не могу (bmp tga можно и вручную загружать) использую DevIL. А вообще попробуй сначала пересохранить свою картинку в Пэинте . Хотя если это стандартная картинка из уроков НэХе и ты её не пересохранял, то пожалуй ошибка всё-же в твоём коде.
Кстать, а в какой именно функции вылетает ошибка? А то ты тут целый код выложил, чо нам с ним делать?
-
FedeX - постоялец
- Сообщения: 422
- Зарегистрирован: 27.03.2006 09:25:34
- Откуда: украина, житомир
-
- Профиль
- ICQ
Slavikk » 01.02.2007 10:57:15
TextureImage.W, TextureImage.H, TextureImage.pixels — Illegal qualifer
- Код: Выделить всё
// Генерация текстуры
glTexImage2D( GL_TEXTURE_2D, 0, 3, TextureImage.W,
TextureImage.H, 0, GL_rgb,
GL_UNSIGNED_BYTE, TextureImage.pixels );
-
Slavikk - постоялец
- Сообщения: 208
- Зарегистрирован: 15.01.2007 22:34:52
- Откуда: Из лесов…
-
- Профиль
- Сайт
Cheb » 05.02.2007 21:07:10
Я с сабжем не знаком, но подозреваю, что…
TextureImage: PSDL_Surface;
Может, TextureImage^.H , а?
-
Cheb - энтузиаст
- Сообщения: 969
- Зарегистрирован: 06.06.2005 15:54:34
-
- Профиль
- Сайт
Slavikk » 11.02.2007 02:22:53
Спасибо, разобрался. рабочий код:
- Код: Выделить всё
glTexImage2D( GL_TEXTURE_2D, 0, 3, TextureImage^.W,
TextureImage^.H, 0, GL_BGR_EXT,
GL_UNSIGNED_BYTE, TextureImage^.pixels );
-
Slavikk - постоялец
- Сообщения: 208
- Зарегистрирован: 15.01.2007 22:34:52
- Откуда: Из лесов…
-
- Профиль
- Сайт
FedeX » 11.02.2007 08:19:40
Чтоб не разименовывать постоянно указатели можно заменить директиву {$mode objfpc} на {$mode Delphi}. Тогда б код работал.
-
FedeX - постоялец
- Сообщения: 422
- Зарегистрирован: 27.03.2006 09:25:34
- Откуда: украина, житомир
-
- Профиль
- ICQ
shade » 02.06.2007 20:40:28
divinusproject писал(а):http://imaginglib.sourceforge.net — отличные библиотеки для работы с изображениями, например, позволяет загрузить из png прямо в текстуру ogl.
Пример, пожалуйста
(загрузить прямо в текстуру ogl)
-
shade - энтузиаст
- Сообщения: 879
- Зарегистрирован: 21.02.2006 20:15:48
- Откуда: http://shamangrad.net/
-
- Профиль
- Сайт
- ICQ
shade » 02.06.2007 21:06:46
Уже не надо:
- Код: Выделить всё
uses ImagingOpenGL;
...
texid := LoadGLTextureFromFile(ExtractFileDir(Application.ExeName) + 'texture.bmp');
glBindTexture(GL_TEXTURE_2D, texid);
-
shade - энтузиаст
- Сообщения: 879
- Зарегистрирован: 21.02.2006 20:15:48
- Откуда: http://shamangrad.net/
-
- Профиль
- Сайт
- ICQ
Вернуться в Lazarus
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 8
[16:45:02] [main/INFO] [GradleStart]: Extra: []
[16:45:02] [main/INFO] [GradleStart]: Running with arguments: [--userProperties, {}, --assetsDir, C:/Users/Admin/.gradle/caches/minecraft/assets, --assetIndex, 1.12, --accessToken{REDACTED}, --version, 1.12.2, --tweakClass, net.minecraftforge.fml.common.launcher.FMLTweaker, --tweakClass, net.minecraftforge.gradle.tweakers.CoremodTweaker]
[16:45:02] [main/INFO] [LaunchWrapper]: Loading tweak class name net.minecraftforge.fml.common.launcher.FMLTweaker
[16:45:02] [main/INFO] [LaunchWrapper]: Using primary tweak class name net.minecraftforge.fml.common.launcher.FMLTweaker
[16:45:02] [main/INFO] [LaunchWrapper]: Loading tweak class name net.minecraftforge.gradle.tweakers.CoremodTweaker
[16:45:02] [main/INFO] [LaunchWrapper]: Calling tweak class net.minecraftforge.fml.common.launcher.FMLTweaker
[16:45:02] [main/INFO] [FML]: Forge Mod Loader version 14.23.5.2768 for Minecraft 1.12.2 loading
[16:45:02] [main/INFO] [FML]: Java is Java HotSpot(TM) 64-Bit Server VM, version 1.8.0_201, running on Windows 7:amd64:6.1, installed at C:Program FilesJavajre1.8.0_201
[16:45:02] [main/ERROR] [FML]: Apache Maven library folder was not in the format expected. Using default libraries directory.
[16:45:02] [main/ERROR] [FML]: Full: C:UsersAdmin.gradlecachesmodules-2files-2.1org.apache.mavenmaven-artifact3.5.37dc72b6d6d8a6dced3d294ed54c2cc3515ade9f4maven-artifact-3.5.3.jar
[16:45:02] [main/ERROR] [FML]: Trimmed: c:/users/admin/.gradle/caches/modules-2/files-2.1/org.apache.maven/maven-artifact/3.5.3/
[16:45:02] [main/INFO] [FML]: Managed to load a deobfuscated Minecraft name- we are in a deobfuscated environment. Skipping runtime deobfuscation
[16:45:02] [main/INFO] [FML]: Detected deobfuscated environment, loading log configs for colored console logs.
2019-05-21 16:45:04,531 main WARN Disabling terminal, you're running in an unsupported environment.
[16:45:04] [main/INFO] [FML]: Ignoring missing certificate for coremod FMLCorePlugin (net.minecraftforge.fml.relauncher.FMLCorePlugin), we are in deobf and it's a forge core plugin
[16:45:04] [main/INFO] [FML]: Ignoring missing certificate for coremod FMLForgePlugin (net.minecraftforge.classloading.FMLForgePlugin), we are in deobf and it's a forge core plugin
[16:45:04] [main/INFO] [FML]: Searching C:Lumber Tycoonrun.mods for mods
[16:45:04] [main/INFO] [LaunchWrapper]: Calling tweak class net.minecraftforge.gradle.tweakers.CoremodTweaker
[16:45:04] [main/INFO] [GradleStart]: Injecting location in coremod net.minecraftforge.fml.relauncher.FMLCorePlugin
[16:45:04] [main/INFO] [GradleStart]: Injecting location in coremod net.minecraftforge.classloading.FMLForgePlugin
[16:45:04] [main/INFO] [LaunchWrapper]: Loading tweak class name net.minecraftforge.fml.common.launcher.FMLInjectionAndSortingTweaker
[16:45:04] [main/INFO] [LaunchWrapper]: Loading tweak class name net.minecraftforge.fml.common.launcher.FMLDeobfTweaker
[16:45:04] [main/INFO] [LaunchWrapper]: Loading tweak class name net.minecraftforge.gradle.tweakers.AccessTransformerTweaker
[16:45:04] [main/INFO] [LaunchWrapper]: Calling tweak class net.minecraftforge.fml.common.launcher.FMLInjectionAndSortingTweaker
[16:45:04] [main/INFO] [LaunchWrapper]: Calling tweak class net.minecraftforge.fml.common.launcher.FMLInjectionAndSortingTweaker
[16:45:04] [main/INFO] [LaunchWrapper]: Calling tweak class net.minecraftforge.fml.relauncher.CoreModManager$FMLPluginWrapper
[16:45:06] [main/ERROR] [FML]: FML appears to be missing any signature data. This is not a good thing
[16:45:06] [main/INFO] [LaunchWrapper]: Calling tweak class net.minecraftforge.fml.relauncher.CoreModManager$FMLPluginWrapper
[16:45:06] [main/INFO] [LaunchWrapper]: Calling tweak class net.minecraftforge.fml.common.launcher.FMLDeobfTweaker
[16:45:07] [main/INFO] [LaunchWrapper]: Calling tweak class net.minecraftforge.gradle.tweakers.AccessTransformerTweaker
[16:45:07] [main/INFO] [LaunchWrapper]: Loading tweak class name net.minecraftforge.fml.common.launcher.TerminalTweaker
[16:45:07] [main/INFO] [LaunchWrapper]: Calling tweak class net.minecraftforge.fml.common.launcher.TerminalTweaker
[16:45:07] [main/INFO] [LaunchWrapper]: Launching wrapped minecraft {net.minecraft.client.main.Main}
[16:45:08] [main/INFO] [minecraft/Minecraft]: Setting user: Player591
[16:45:14] [main/WARN] [minecraft/GameSettings]: Skipping bad option: lastServer:
[16:45:14] [main/INFO] [minecraft/Minecraft]: LWJGL Version: 2.9.4
[16:45:16] [main/INFO] [FML]: -- System Details --
Details:
Minecraft Version: 1.12.2
Operating System: Windows 7 (amd64) version 6.1
Java Version: 1.8.0_201, Oracle Corporation
Java VM Version: Java HotSpot(TM) 64-Bit Server VM (mixed mode), Oracle Corporation
Memory: 877664304 bytes (837 MB) / 1056309248 bytes (1007 MB) up to 1056309248 bytes (1007 MB)
JVM Flags: 3 total; -Xincgc -Xmx1024M -Xms1024M
IntCache: cache: 0, tcache: 0, allocated: 0, tallocated: 0
FML:
Loaded coremods (and transformers):
GL info: ' Vendor: 'NVIDIA Corporation' Version: '4.6.0 NVIDIA 391.35' Renderer: 'GeForce GT 610/PCIe/SSE2'
[16:45:16] [main/INFO] [FML]: MinecraftForge v14.23.5.2768 Initialized
[16:45:16] [main/INFO] [FML]: Starts to replace vanilla recipe ingredients with ore ingredients.
[16:45:17] [main/INFO] [FML]: Replaced 1036 ore ingredients
[16:45:17] [main/INFO] [FML]: Searching C:Lumber Tycoonrun.mods for mods
[16:45:19] [main/INFO] [FML]: Forge Mod Loader has identified 5 mods to load
[16:45:20] [Thread-3/INFO] [FML]: Using alternative sync timing : 200 frames of Display.update took 1289724576 nanos
[16:45:20] [main/INFO] [FML]: Attempting connection with missing mods [minecraft, mcp, FML, forge, lt] at CLIENT
[16:45:20] [main/INFO] [FML]: Attempting connection with missing mods [minecraft, mcp, FML, forge, lt] at SERVER
[16:45:23] [main/INFO] [minecraft/SimpleReloadableResourceManager]: Reloading ResourceManager: Default, FMLFileResourcePack:Forge Mod Loader, FMLFileResourcePack:Minecraft Forge, FMLFileResourcePack:Lumber Tucoon
[16:45:23] [main/INFO] [FML]: Processing ObjectHolder annotations
[16:45:23] [main/INFO] [FML]: Found 1168 ObjectHolder annotations
[16:45:23] [main/INFO] [FML]: Identifying ItemStackHolder annotations
[16:45:23] [main/INFO] [FML]: Found 0 ItemStackHolder annotations
[16:45:24] [main/INFO] [FML]: Configured a dormant chunk cache size of 0
[16:45:24] [Forge Version Check/INFO] [forge.VersionCheck]: [forge] Starting version check at http://files.minecraftforge.net/maven/net/minecraftforge/forge/promotions_slim.json
[16:45:24] [main/INFO] [FML]: Applying holder lookups
[16:45:24] [main/INFO] [FML]: Holder lookups applied
[16:45:24] [main/INFO] [FML]: Applying holder lookups
[16:45:24] [main/INFO] [FML]: Holder lookups applied
[16:45:24] [main/INFO] [FML]: Applying holder lookups
[16:45:24] [main/INFO] [FML]: Holder lookups applied
[16:45:24] [main/INFO] [FML]: Applying holder lookups
[16:45:24] [main/INFO] [FML]: Holder lookups applied
[16:45:24] [main/INFO] [FML]: Injecting itemstacks
[16:45:24] [main/INFO] [FML]: Itemstack injection complete
[16:45:24] [Forge Version Check/INFO] [forge.VersionCheck]: [forge] Found status: UP_TO_DATE Target: null
[16:45:30] [Sound Library Loader/INFO] [minecraft/SoundManager]: Starting up SoundSystem...
[16:45:30] [Thread-5/INFO] [minecraft/SoundManager]: Initializing LWJGL OpenAL
[16:45:30] [Thread-5/INFO] [minecraft/SoundManager]: (The LWJGL binding of OpenAL. For more information, see http://www.lwjgl.org)
AL lib: (EE) DoReset: Failed to initialize audio client: 0x8889000a
[16:45:33] [Thread-5/INFO] [STDERR]: [java.lang.ThreadGroup:uncaughtException:-1]: org.lwjgl.openal.OpenALException: Invalid Device
[16:45:33] [Thread-5/INFO] [STDERR]: [java.lang.ThreadGroup:uncaughtException:-1]: at org.lwjgl.openal.Util.checkALCError(Util.java:55)
[16:45:33] [Thread-5/INFO] [STDERR]: [java.lang.ThreadGroup:uncaughtException:-1]: at org.lwjgl.openal.ALC10.alcCreateContext(ALC10.java:251)
[16:45:33] [Thread-5/INFO] [STDERR]: [java.lang.ThreadGroup:uncaughtException:-1]: at org.lwjgl.openal.AL.init(AL.java:173)
[16:45:33] [Thread-5/INFO] [STDERR]: [java.lang.ThreadGroup:uncaughtException:-1]: at org.lwjgl.openal.AL.create(AL.java:143)
[16:45:33] [Thread-5/INFO] [STDERR]: [java.lang.ThreadGroup:uncaughtException:-1]: at org.lwjgl.openal.AL.create(AL.java:102)
[16:45:33] [Thread-5/INFO] [STDERR]: [java.lang.ThreadGroup:uncaughtException:-1]: at org.lwjgl.openal.AL.create(AL.java:206)
[16:45:33] [Thread-5/INFO] [STDERR]: [java.lang.ThreadGroup:uncaughtException:-1]: at paulscode.sound.libraries.LibraryLWJGLOpenAL.init(LibraryLWJGLOpenAL.java:164)
[16:45:33] [Thread-5/INFO] [STDERR]: [java.lang.ThreadGroup:uncaughtException:-1]: at paulscode.sound.SoundSystem.CommandNewLibrary(SoundSystem.java:1576)
[16:45:33] [Thread-5/INFO] [STDERR]: [java.lang.ThreadGroup:uncaughtException:-1]: at paulscode.sound.SoundSystem.CommandQueue(SoundSystem.java:2572)
[16:45:33] [Thread-5/INFO] [STDERR]: [java.lang.ThreadGroup:uncaughtException:-1]: at paulscode.sound.CommandThread.run(CommandThread.java:121)
Exception in thread "Thread-5" [16:45:36] [main/INFO] [FML]: Max texture size: 16384
[16:45:37] [main/INFO] [minecraft/TextureMap]: Created: 512x512 textures-atlas
[16:45:40] [main/INFO] [FML]: Applying holder lookups
[16:45:40] [main/INFO] [FML]: Holder lookups applied
[16:45:40] [main/INFO] [FML]: Injecting itemstacks
[16:45:40] [main/INFO] [FML]: Itemstack injection complete
[16:45:41] [main/INFO] [FML]: Forge Mod Loader has successfully loaded 5 mods
[16:45:41] [main/WARN] [minecraft/GameSettings]: Skipping bad option: lastServer:
[16:45:42] [main/INFO] [mojang/NarratorWindows]: Narrator library for x64 successfully loaded
[16:45:42] [main/ERROR] [FML.TEXTURE_ERRORS]: +=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=
[16:45:42] [main/ERROR] [FML.TEXTURE_ERRORS]: The following texture errors were found.
[16:45:42] [main/ERROR] [FML.TEXTURE_ERRORS]: ==================================================
[16:45:42] [main/ERROR] [FML.TEXTURE_ERRORS]: DOMAIN lt
[16:45:42] [main/ERROR] [FML.TEXTURE_ERRORS]: --------------------------------------------------
[16:45:42] [main/ERROR] [FML.TEXTURE_ERRORS]: domain lt is missing 1 texture
[16:45:42] [main/ERROR] [FML.TEXTURE_ERRORS]: domain lt has 1 location:
[16:45:42] [main/ERROR] [FML.TEXTURE_ERRORS]: mod lt resources at C:Lumber Tycoonbin
[16:45:42] [main/ERROR] [FML.TEXTURE_ERRORS]: -------------------------
[16:45:42] [main/ERROR] [FML.TEXTURE_ERRORS]: The missing resources for domain lt are:
[16:45:42] [main/ERROR] [FML.TEXTURE_ERRORS]: textures/items/plain_axe.png
[16:45:42] [main/ERROR] [FML.TEXTURE_ERRORS]: -------------------------
[16:45:42] [main/ERROR] [FML.TEXTURE_ERRORS]: The following other errors were reported for domain lt:
[16:45:43] [main/ERROR] [FML.TEXTURE_ERRORS]: -------------------------
[16:45:43] [main/ERROR] [FML.TEXTURE_ERRORS]: Problem: broken aspect ratio and not an animation
[16:45:43] [main/ERROR] [FML.TEXTURE_ERRORS]: textures/items/basic_axe.png
[16:45:43] [main/ERROR] [FML.TEXTURE_ERRORS]: textures/items/hardened_axe.png
[16:45:43] [main/ERROR] [FML.TEXTURE_ERRORS]: textures/items/steel_axe.png
[16:45:43] [main/ERROR] [FML.TEXTURE_ERRORS]: ==================================================
[16:45:43] [main/ERROR] [FML.TEXTURE_ERRORS]: +=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=
[16:45:45] [Realms Notification Availability checker #1/INFO] [mojang/RealmsClient]: Could not authorize you against Realms server: Invalid session id
[16:46:13] [Sound Library Loader/WARN] [minecraft/SoundManager]: ERROR MESSAGE:
[16:46:13] [Sound Library Loader/INFO] [minecraft/SoundManager]: SoundSystem did not load after 30 seconds.
[16:46:13] [Sound Library Loader/INFO] [minecraft/SoundManager]: Starting up SoundSystem...
текстураизображение, используемое при рендеринге игрового объекта, спрайта или пользовательского интерфейса. элемент. Текстуры часто применяются к поверхности сетки, чтобы придать ей визуальную детализацию. Подробнее
См. в Словарь — это растровое изображение. Вы можете создавать текстуры в приложении для создания цифрового контента, таком как Photoshop, и импортировать их в Unity.
В 3D-проекте Unity импортирует файлы изображений и фильмов в папку «Активы» как текстуры. В 2D-проекте Unity импортирует файлы изображений и фильмов в папку «Активы» в виде спрайтовдвухмерных графических объектов. Если вы привыкли работать в 3D, спрайты — это, по сути, просто стандартные текстуры, но есть специальные приемы комбинирования текстур спрайтов и управления ими для повышения эффективности и удобства во время разработки. Подробнее
См. в Словарь.
Если изображение соответствует указанным требованиям к размеру, Unity импортирует и оптимизирует его для использования в игре. Это распространяется на многослойные файлы Photoshop PSD или TIFF.
Чтобы импортировать файлы изображений и фильмов как текстуры и спрайты в Unity:
- Выберите файл изображения в окне проектаокне, в котором отображается содержимое вашего
Папка Assets
(вкладка Project) Подробнее
См. в Словарь. - В Инспектореокне Unity, в котором отображается информация о текущем выбранном игровом объекте, активе или настройках проекта, что позволяет вам проверять и отредактируйте значения. Дополнительная информация
См. в Словарь, установите Настройки импорта текстур. - Нажмите кнопку Применить, чтобы сохранить изменения.
- Чтобы использовать импортированные ресурсы в проекте:
- Для 3D-проектов создайте материал и назначьте текстуру новому материалу.
- Для 2D-проектов используйте редактор спрайтов.
Рекомендации и ограничения
В следующих разделах приведены рекомендации и подробные сведения об ограничениях на импорт текстур:
- Текстуры HDR
- Размеры текстуры
- Карты нормалейТип текстуры карты рельефа, который позволяет добавлять детали поверхности, такие как неровности. , канавки и царапины на модели, которые отражают свет, как если бы они были представлены реальной геометрией.
См. в Словарь - Альфа-карты
- Подробные карты
- Отражения (кубические карты)
- Анизотропная фильтрация
- Поддерживаемые форматы файлов
Текстуры HDR
При импорте из EXR или HDRвысокого динамического диапазона
См. файл Словарь, содержащий информацию HDR, Texture Importer автоматически выбирает правильный формат HDR для выходной текстуры. Этот формат изменяется автоматически в зависимости от того, для какой платформы вы создаете.
Размеры текстуры
В идеале размер текстуры должен быть равен степени двойки с каждой стороны (то есть 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 2048 пикселей (пикс.) и т. д.) . Текстуры не обязательно должны быть квадратными; ширина может отличаться от высоты.
В Unity можно использовать размеры текстуры NPOT (не степень двойки). Однако размеры текстуры NPOT обычно требуют немного больше памяти и могут быть медленнее для GPU при выборке, поэтому для производительности лучше использовать мощность двух размеров, когда это возможно.
Если платформа или графический процессор не поддерживают размеры текстуры NPOT, Unity масштабирует и дополняет текстуру до следующей степени двойки. Этот процесс использует больше памяти и замедляет загрузку (особенно на старых мобильных устройствах). Как правило, размеры NPOT следует использовать только для целей графического интерфейса пользователя.
Вы можете масштабировать ресурсы текстур NPOT во время импорта, используя параметр Не в степени 2 в разделе Дополнительно средства импорта текстур.
Примечание. На определенных платформах могут устанавливаться максимальные размеры текстуры. Для DirectX максимальные размеры текстур для разных уровней функций следующие:
Graphics APIs / Feature levels | Максимум 2D и CubemapНабор из шести квадратных текстур, которые могут представлять отражения в окружающей среде или скайбокс, нарисованный позади вашей геометрии. Шесть квадратов образуют грани воображаемого куба, окружающего объект; каждая грань представляет вид по направлениям мировых осей (вверх, вниз, влево, вправо, вперед и назад). Подробнее См. в Словарь Размер текстуры (px) |
---|---|
DX9 ShaderПрограмма, работающая на графическом процессоре. Подробнее См. в Словарь Модель 2 (графические процессоры ПК до 2004 г.) / OpenGL ES 2.0 |
2048 |
DX9 Shader Model 3 (графические процессоры ПК до 2006 г.) / уровень Windows Phone DX11 9.3 / OpenGL ES 3.0 | 4096 |
DX10 Shader Model 4 / GL3 (графические процессоры ПК до 2007 г.) / OpenGL ES 3.1 | 8192 |
DX11 Shader Model 5 / GL4 (PC GPUs since 2008) | 16384 |
Примечания:
- Средство импорта текстур позволяет выбирать размеры до 16 КБ (то есть 8 192 x 8 192 пикселя).
- Большинство графических процессоров Mali поддерживают размеры текстуры до 4 КБ для кубических карт.
Normal maps
Карты нормалей используются шейдерами карт нормалей, чтобы низкополигональные модели выглядели так, как будто они содержат больше деталей. Unity использует карты нормалей, закодированные как изображения RGB. У вас также есть возможность создать карту нормалей из изображения карты высот в градациях серого.
Альфа-карты
Альфа-карта — это Текстура, содержащая только информацию об альфа-канале. Вы можете использовать альфа-карту для применения различных уровней прозрачности к Материалу.
Вы можете создать альфа-карту, создав текстуру с информацией в альфа-канале или создав текстуру в градациях серого и преобразовав значения градаций серого в альфа-канал в Unity.
Дополнительную информацию см. в документации по параметру Источник альфа-канала для импорта текстур.
Подробные карты
Если вы хотите создать ЛандшафтЛандшафт в своей сцене. Игровой объект Terrain добавляет в вашу сцену большую плоскую плоскость, и вы можете использовать окно Terrain Inspector для создания подробного ландшафта. Подробнее
См. в Словарь, вы обычно используете свою основную текстуру, чтобы показать участки местности, такие как как трава, камни и песок. Если ваша местность большая, она может оказаться очень размытой. Детальные текстуры скрывают этот факт, ослабляя мелкие детали по мере приближения основной текстуры.
При отрисовке текстур деталей нейтральный серый цвет невидим, белый делает основную текстуру в два раза ярче, а черный делает основную текстуру полностью черной.
Дополнительную информацию см. в документации по Вторичным картам (подробным картам).
Отражения (кубические карты)
Чтобы использовать текстуру для карт отражения (например, в Reflection ProbesКомпонент рендеринга, который захватывает сферический вид своего окружения во всех направлениях, подобно камере. Захваченное изображение затем сохраняется в виде кубической карты, которая может использоваться объектами с отражающими материалами. Подробнее
См. в Словарь или кубическом SkyboxОсобый тип материала, используемый для изображения неба. Обычно шестигранник. Подробнее
См. в Словарь, установите для параметра Форма текстуры значение Куб. Дополнительную информацию см. в документации по текстурам Cubemap.
Анизотропная фильтрация
Анизотропная фильтрация повышает качество текстуры при взгляде под углом скольжения. Этот рендеринг требует больших ресурсов видеокарты. Увеличение уровня анизотропии обычно является хорошей идеей для текстур земли и пола. Используйте настройки Quality, чтобы включить анизотропную фильтрацию для всех текстур или полностью отключить ее. Хотя, если текстура имеет свой уровень анизотропииуровень анизотропной фильтрации (AF) текстуры. Позволяет повысить качество текстуры при просмотре текстуры под крутым углом. Подходит для текстур пола и земли. Подробнее
See in Словарь установлен на 0 в Настройки импорта текстуры, принудительная анизотропная фильтрация не применяется к этой текстуре.
Поддерживаемые форматы файлов
Unity может читать файлы следующих форматов:
- BMP
- EXR
- GIF
- HDR
- IFF
- JPG
- PICT
- PNG
- PSD
- TGA
- TIFF
Unity автоматически выравнивает многослойные файлы Photoshop PSD или TIFF при импорте, чтобы размер вашей игры не уменьшался. Это выравнивание происходит с импортированными данными в Unity, а не с самим файлом, поэтому вы можете продолжать сохранять и импортировать файлы PSD или TIFF без потери результатов своей работы при изначальном использовании этих типов файлов. Это позволяет вам иметь одну копию каждой текстуры, которую вы можете использовать в Photoshop, приложении для 3D-моделирования и в Unity.