Está en la página 1de 7

Computo gráfico

GPU: unidad de procesamiento gráfico.


Tarjeta gráfica: Procesador gráfico,
Tienes una computadora dentro de una computadora (tarjeta
gráfica es una computadora ya que tiene un procesador y memoria)
Cada una tiene una memoria ram, cuando se está corriendo un
proceso gráfico, ninguna de los dos lados tiene acceso a la memoria
del otro.
Necesitamos un canal de comunicación entre los dos, el mínimo de
cpdigos fuentes para correr un programa de open gl, son 3 uno del
lado del gpu y uno del cpu.

Los programas que corren en la gpu son los shaders.


Los programas necesitan datos para procesar (objetos e imágenes)
Open gl es una biblioteca de programación grafica de bajo nivel que
nos da la comunicación entre el gpu y cpu.
Entonces un programa de gpu es un conjunto de shaders, porque se
cargan al mismo tiempo.
Cpu le tiene que decir al gpu que tiene que graficar, información
que vienen del disco duro.
Un proceso de inicialización tiene que tener un proceso
interpretación de datos. Como el archivo de los objetos, código
fuente, geometría, etc. Estos se cargan a memoria y se pasa en
arreglos de vectores al gpu
Proceso de ejecución:
glDraw = ejecuta el programa que le hayamos dicho, con los
parámetros que se hayan especificado. Cámara, colores, geometría.
Pipeline de transformaciones de Open gl.
Vertex shader: procesa vértices (geometría)
Rasterizar: hace que se transforme en unidades que pueden ser
graficadas (pixeles)
Fragment shader: son procesador para decidir de que color van
Después de eso, la salida es el color y forma de del objeto.

Vertex shader
Recibe un vértice por vez, procesa ese vértice y su salida es un
vertex shader
Fragmet shader:
Procesa un solo fragmento y emite el color de ese fragmento
Por eso un gpu tiene muchos núcleos para procesar muchos
vértices
El algo del mismo tamaño de un pixel que srive para calcular el
color del pixel,

¿Por qué utilizar los tipos de datos de OpenGL?


Para garantizar la compatibilidad de sistemas y puedas utilizar el
mismo código en diferentes sistemas
¿Qué es un programa?
Un conjunto de shaders (vertex, fragmet)

Vertex Buffer Object: Vector donde se almacenan la geometría


Vertex Array Object: Vector donde se contiene los contenedores de
la geometría

Tarea: meter el Glew, glm, cambio de color en el shader y modificar


los vértices de alguna manera que no sea la división
Glsl

Parámetros de la cámara LookAt: (eye, center, up)

Parámetros de la perspectiva: (FOV, apertura de la cámara, )

Variables uniform: Se mandan con un solo valor fijo durante toda la


ejecución.
Variables de in out, cambian su valor durante cada instancia.
Documentación de cómputo gráfico

Passthru.fs = fragment shader


Passthr.vs = vertex shader
ShaderFuncs = Para crear shaders
HelloTriangle = main del programa donde se inicializa todo
Applicaction.h = declaración de las funciones que inicializan los
shaders, geometría, funciones de Eventos de teclado, setup,
Update, Draw.

Application.cpp = Definición de las anteriores funciones


//Funciones de Application.cpp:
SetupShaders: Declara los shaders, cargando los archivos de
Passthru.fs y Passthru.vs, y después los inicializa.
SetupGeometry: declara un vector de vectores dónde se almacenan
los vectores de los vértices del triángulo, declara los Vertex Array
Objects y los Vertex Buffer Objects, manda la geometría al buffer,
Operadores binarios:
Byte 0000 0000 = 0
0000 0001 = 1
0000 1000 = 8

0000 0001
OR 000 1000 = 0000 1001 = 9

Trabajando cerca del hardware (a bajo nivel) encontramos bits que


configuran el comportamiento del hardware
Cada bit continuo como un Dip Switch

Para parametrizar un valor de un shader en c++, se usan valores


uniform
Tarea:
Con las teclas que se manipulen las coordenadas de la textura. Esto
se hace desde el vertex shader. Modificar el call back, variables para
t y s (hacerlas uniform), *De preferencia no modificarlas en el
fragment shader*

También podría gustarte