Есть программа.Она задействует шейдеры.Просто с цветом всё нормально работает,но с текстурой отказывается.Также текстурирование без шейдера работает.
Должен быть куб с текстурой…но вот только начал разбираться с шейдерами, еще мало чего знаю.
Используется в проге GLSL 1.3 & OpenGL 2.Более новые версии мой мак не поддерживает…
//проект с шейдерами
upd:проект с шейдерами2
Извините, к безлимитке привыкаешь…
SIF
Качать влом. К тому же, там нечего запустить. Проявляй уважение к тем, кто хочет тебе помочь, выкладывай проблему в доступном виде.
-Eugene-
+1
Мало что понятно из проекта, однако в shader.fs надобно использовать texture2D(sampler2D sampler, vec2 coord)
Не очень красиво так делать. Вопроса по существу нет, но зато есть ссылка на скачивание проекта (в надежде на то, что его кто-то скачает и исправит).
Кстати, если проект исправить и не сказать тебе где было сделано исправление - ты этому будешь рад? :)
SIF
>
> Извините, к безлимитке привыкаешь…
Дело не в лимитке/безлимитке, а в том, что нам, вместо того, чтобы пробежать один экран ключегого кода в 0-м посте, надо что то качать, [компилить, ]запускать, рыться в исходниках...
Простите,вот что у меня получилось:
в дебаг режиме:
[Switching to process 45547]
Running…
aa1.20 //////version glsl
start shadersShader compile log:
ERROR: 0:2: 'attribute' : supported in vertex shaders only
ERROR: 0:7: 'gl_Position' : undeclared identifier
ERROR: 0:7: 'assign' : cannot convert from 'attribute 4-component vector of float' to 'float'
ERROR: 0:8: 'y' : field selection requires structure or vector on left hand side
Program link log:
WARNING: Could not find vertex shader attribute 'texture' to match BindAttributeLocation request.
Program validate log:
WARNING: Could not find vertex shader attribute 'texture' to match BindAttributeLocation request.
end shaders
в релиз режиме:
Running…
Assertion failed: (valid), function operator char*, file /var/root/Projects/glc/texture.cpp, line 440.
Program received signal: “SIGABRT”.
sharedlibrary apply-load-rules all
SIF
Ну вроде всё написано, что не понятно?
Дело в том что:
ERROR: 0:7: 'gl_Position' : undeclared identifier - это взято с примера SDK appl'а,а тоесть должно работать и работает на айфоне
а Program link log:
WARNING: Could not find vertex shader attribute 'texture' to match BindAttributeLocation request. не понятно что хочет,я ж вроде всё прописал
ERROR: 0:2: 'attribute' : supported in vertex shaders only - это и так в вершинном шейдере
Ты вершинный шейдер с фрагментным не перепутал?
Executor,да,нечайно установил текстуру как юнит вершинного шейдера,теперь такая проблемка:
WARNING: Could not find vertex shader attribute 'texture' to match BindAttributeLocation request.
end shaders
Непойму что нужно ему?
SIF
> 'texture' to match BindAttributeLocation
wut? самллер это не вершинный атрибут, что-то ты явно там напутал.
У меня есть загрузчик dds(nv_dds.h and nv_dds.cpp)
Как мне просто передать текстуру в шейдер,там ее принять,но ничего с ней не делать?
SIF
> У меня есть загрузчик dds(nv_dds.h and nv_dds.cpp)
Good for you, so whats next?
> Как мне просто передать текстуру в шейдер,там ее принять,но ничего с ней не делать?
Объявляешь в шейдере самплер, через glUniform1i передаешь индекс тестурного юнита на этот самплер. В шейдере можешь использовать а можешь не использовать его - дело твое.
KpeHDeJIb,спасибо.Завтра попробую…
Тема в архиве.