Articles of opengl

Criando uma esfera 3D no Opengl usando o Visual C ++

Eu não sou capaz de criar uma esfera 3D simples usando a function de biblioteca OpenGL glutSolidSphere () em C ++. Aqui está o que eu tentei: #include void display() { glClear(GL_COLOR_BUFFER_BIT); glColor3f(1.0,0.0,0.0); glLoadIdentity(); glutSolidSphere( 5.0, 20.0, 20.0); glFlush(); } void myInit() { glClearColor(1.0,1.0,1.0,1.0); glColor3f(1.0,0.0,0.0); glMatrixMode(GL_PROJECTION); glLoadIdentity(); gluOrtho2D(0.0,499.0,0.0,499.0); glMatrixMode(GL_MODELVIEW); } void main(int argc,char **argv) { […]

Girando um grupo de vetores

Eu estou tentando girar um grupo de vetores que eu amostrado para o normal de um triângulo Se isso estivesse correto, o hemisfério amostrado aleatoriamente se alinharia com o triângulo. Atualmente eu gero no eixo Z e estou tentando girar todas as amostras para a normal do triângulo. mas parece ser “apenas desligado” glm::quat getQuat(glm::vec3 […]

Mapeamento normal ido terrivelmente errado

Eu tentei implementar o mapeamento normal em meu aplicativo opengl, mas não consigo fazê-lo funcionar. Este é o mapa difuso (que eu adiciono uma cor marrom) e este é o mapa normal. A fim de obter os vetores tangentes e bitangentes (em outros lugares chamados binormais?), Eu corro essa function para cada triângulo na minha […]

Como renderizar profundidade linearmente no OpenGL moderno com gl_FragCoord.z ​​no fragment shader?

Eu li muitas informações sobre como obter profundidade com o fragment shader. tal como http://www.opengl.org/discussion_boards/ubbthreads.php?ubb=showflat&Number=234519 mas eu ainda não sei se o gl_FragCoord.z é linear ou não. A especificação GLSL disse que seu alcance é de [0,1] na canvas sem mencionar que é linear ou não. Eu acho que a linearidade é vital, já que […]

Como o OpenGL funciona no nível mais baixo?

Eu entendo como escrever programas OpenGL / DirectX, e eu conheço a matemática e as coisas conceituais por trás disso, mas estou curioso sobre como a comunicação da CPU GPU funciona em um nível baixo. Digamos que eu tenha um programa OpenGL escrito em C que exiba um triângulo e gire a câmera em 45 […]

Reflexão e refração impossíveis sem traçado recursivo de raios?

Estou escrevendo um renderizador de raytracing em tempo real baseado em GPU usando um shader de computação GLSL. Até agora, funciona muito bem, mas me deparei com um problema aparentemente insolúvel quando se trata de ter reflexões e refrações simultaneamente. Minha lógica me diz que, para ter reflexões e refrações em um object, como o […]

OpenGL – dificuldades de buffer de índice

Eu tenho um formato de arquivo personalizado que contém todas as informações necessárias para uma malha 3D (exportada do 3ds Max). Eu extraí os dados para vértices, índices de vértices e normais. Eu passo para o OpenGL os dados de vértices, índices de vértices e dados normais e eu renderizo a malha com uma chamada […]

Como fazer um contexto de renderização OpenGL com fundo transparente?

Os contextos de renderização geralmente têm uma cor sólida no plano de fundo (preto ou qualquer outro, veja a imagem abaixo): Eu estou querendo saber se é possível configurar uma janela, sem decorações E com o fundo transparente, enquanto me permite renderizar coisas OpenGL sobre ele. Isso daria a ilusão de que o triângulo está […]

OpenGL – normais do vertex em OBJ

Eu quero saber como posso usar os vértices normais para efeito relâmpago? Atualmente, o que tenho é que posso enviar as coordenadas de vértice e textura ao sombreador e usá-las, mas com as normais, não sei como usá-las no programa de sombreador. Abaixo está o que eu tenho até agora. // vertex shader layout(location = […]

Malhas de renderização com múltiplos índices

Eu tenho alguns dados de vértices. Posições, normais, coordenadas de textura. Eu provavelmente o carreguei de um arquivo .obj ou algum outro formato. Talvez eu esteja desenhando um cubo. Mas cada pedaço de dados de vértices tem seu próprio índice. Posso renderizar esses dados de malha usando o OpenGL / Direct3D?