В этом уроке:
- создаем шейдеры
- рисуем треугольник
Click here to read this article!
Урок 169. OpenGL. Шейдеры
Урок 169. OpenGL. Шейдеры
Последний раз редактировалось damager82 06 июн 2017, 01:11, всего редактировалось 14 раз.
Re: Урок 169. OpenGL. Шейдеры
На самом деле можно было проще.Очень много инфы получилось для одного урока, но меньше уже никак было не разбить.
Вот самый простой класс рендера без использования буферов и показывающий основы работы Шейдеров:
Код: Выделить всё
public class GLES20Renderer implements Renderer {
private int _pointProgram;
public void onSurfaceCreated(GL10 gl, EGLConfig config) {
GLES20.glClearColor(0.0f, 0.0f, 0.0f, 1);
}
public void onSurfaceChanged(GL10 gl, int width, int height) {
GLES20.glViewport(0, 0, width, height);
int pointVertexShader = loadShader(GLES20.GL_VERTEX_SHADER, _pointVertexShaderCode);
int pointFragmentShader = loadShader(GLES20.GL_FRAGMENT_SHADER, _pointFragmentShaderCode);
_pointProgram = GLES20.glCreateProgram();
GLES20.glAttachShader(_pointProgram, pointVertexShader);
GLES20.glAttachShader(_pointProgram, pointFragmentShader);
GLES20.glLinkProgram(_pointProgram);
}
public void onDrawFrame(GL10 gl) {
GLES20.glClear(GLES20.GL_COLOR_BUFFER_BIT | GLES20.GL_DEPTH_BUFFER_BIT);
GLES20.glUseProgram(_pointProgram);
GLES20.glDrawArrays(GLES20.GL_POINTS, 0, 1);
}
private int loadShader(int type, String source) {
int shader = GLES20.glCreateShader(type);
GLES20.glShaderSource(shader, source);
GLES20.glCompileShader(shader);
return shader;
}
private final String _pointVertexShaderCode =
"void main() { \n"
+ " gl_PointSize = 15.0; \n"
+ " gl_Position = vec4(0.0,0.0,0.0,1); \n"
+ "} \n";
private final String _pointFragmentShaderCode =
"void main() { \n"
+ " gl_FragColor = vec4(1.0,1.0,1.0,1); \n"
+ "} \n";
}
Там кстати неплохо описано как создавать простые модели в Blender и выгружать их в openGL и простое текстурирование. Я больше нигде не видел нормального описания.
-
- Сообщения: 42
- Зарегистрирован: 25 янв 2015, 18:57
Re: Урок 169. OpenGL. Шейдеры
Спасибо огромное!! Вы так стараетесь понятно всё изложить, что этому нет цены! Спасибо!
Re: Урок 169. OpenGL. Шейдеры
хорошие уроки спасибо вам за труды, с моей первой игры обязательно Баблагадорю Вас.
- подскажите пожалуйста как запустить скачанный у вас проект? использую последнюю версия AS. при запуске выдает ошибку Error:(1, 0) Plugin with id 'com.android.application' not found.
<a href="openFile:E:\Proj\game\Android\lesson175_texture\build.gradle">Open File</a>
читал что надо гдето чтото подключить чтобы проекты открывались но пока разобраться не получается.
Приходится создавать свой проект и перетаскивать текста из вашего.
- подскажите пожалуйста как запустить скачанный у вас проект? использую последнюю версия AS. при запуске выдает ошибку Error:(1, 0) Plugin with id 'com.android.application' not found.
<a href="openFile:E:\Proj\game\Android\lesson175_texture\build.gradle">Open File</a>
читал что надо гдето чтото подключить чтобы проекты открывались но пока разобраться не получается.
Приходится создавать свой проект и перетаскивать текста из вашего.