草庐IT

hello-gl

全部标签

c++ - 我应该什么时候设置 GL_TEXTURE_MIN_FILTER 和 GL_TEXTURE_MAG_FILTER?

根据定义,GL_TEXTURE_MIN_FILTER在被纹理化的像素映射到大于一个纹理元素的区域时使用。假设我有一个分辨率为1024*768的纹理,我想将它映射到一个矩形。投影矩阵使用以下方法设置:glOrtho(0,1024,0,768,0,1);矩形设置为:glTexCoord2f(0.0f,0.0f);glVertex3f(0.0f,0.0f,0.0f);glTexCoord2f(1.0f,0.0f);glVertex3f(1024.0f,0.0f,0.0f);glTexCoord2f(1.0f,1.0f);glVertex3f(1024.0f,768.0f,0.0f);glTe

c++ - #error gl.h 包含在 glew.h 之前

所以我试图将我的OpenGL代码从Main()移到一个特定的类中,该类仅在必要时处理3D图形。以前,我的main.cpp文件的顶部如下所示:#defineGLEW_STATIC#include#include#include#include#include#include"Game.h"这很有效。我试图做的是将所有与OpenGL相关的代码移动到Game的方法中。类(class)。所以我删除了#defineGLEW_STATIC和#include从上面,并将它们放入Game.h,这样Game.h的顶部现在看起来像这样:#defineGLEW_STATIC#include#include#

c# - 遗传算法的 "Hello World!"有什么用?

我找到了这个verycoolC++sample,字面意思是“HelloWorld!”遗传算法。我决定用C#和this重新编写整个代码是结果。现在我问自己:是否有任何实际应用沿着从随机字符串群体开始生成目标字符串的方向发展?编辑:我在推特上的friend刚刚发推文说“对转录类型的事情很有用,比如翻译。不一定是猴子的”。我希望我有一个线索。 最佳答案 Isthereanypracticalapplicationalongthelinesofgeneratingatargetstringstartingfromapopulationofr

c++ - GL_DRAW/READ_FRAMEBUFFER 与 GL_FRAMEBUFFER?

我注意到现在有GL_DRAW/READ_FRAMEBUFFER扩展。目前我只是在使用GL_FRAMEBUFFER和glTextureBarrierNV。但是,我没有发现太多关于READ/WRITE扩展的信息,因此有一些问题。他们引入了什么OpenGL版本?与简单地使用GL_FRAMEBUFFER进行读写相比,它们有什么优势?我在哪里可以找到有关此的更多信息? 最佳答案 学究笔记:GL_DRAW/READ_FRAMEBUFFER未在扩展中引入;它们是OpenGL3.0的核心功能。是的,从技术上讲,此功能也在ARB_framebuffe

c++ - 16 位 float 和 GL_HALF_FLOAT

我正在寻找/编写16位float的C++实现,以与OpenGL顶点缓冲区(纹理坐标、法线等)一起使用。到目前为止,这是我的要求:必须是16位(显然)。必须能够使用GL_HALF_FLOAT上传到OpenGL顶点缓冲区。必须能够表示超出-1.0-+1.0的数字(否则我只会使用标准化的GL_SHORT)。必须能够与普通32位float相互转换。算术运算无关紧要-我只关心存储。速度不是主要问题,正确性才是。这是我到目前为止的界面:classhalf{public:half(void):data(0){}half(consthalf&h):data(h.data){}half(constuns

c++ - visual studio 2012 c++ hello world - iostream 不工作

我对VisualStudio2012有疑问。我还在使用“Sams每天一小时自学C++,第7版”。在使用google查找C++的“最佳”编译器后,VisualStudios似乎成为首选工具。所以我下载并安装了VisualStudios2012。这本书的第一课是(并告诉我通过转到File>New>Project>VisualC++>Win32>ConsoleApplication将其作为控制台应用程序运行)#includeintmain(){std::cout根本不起作用。它输出类似于以下内容的错误消息:1>c:\users\nik\documents\visualstudio2012\p

c++ - Windows 中的 clang "hello, world!"链接错误

我刚刚下载了CLang源代码,使用CMake创建了一个VisualC++10IDE工作区,并从VisualC++10.0(express)构建了所有内容。现在我在helloworld上遇到了一堆链接器错误:d:\dev\test>typecon>foo.cpp#includeusingnamespacestd;intmain(){coutclang++foo.cppfoo-839435.o:errorLNK2019:unresolvedexternalsymbol__ZSt4coutreferencedinfunction_mainfoo-839435.o:errorLNK2019:u

c++ - 打开 MPI "Hello, World!"未编译

这是一个简单的MPI“Hello,World!”程序。#include#includeintmain(intargc,char**argv){intsize,rank;MPI_Init(&argc,&argv);MPI_Comm_size(MPI_COMM_WORLD,&size);MPI_Comm_rank(MPI_COMM_WORLD,&rank);printf("SIZE=%dRANK=%d\n",size,rank);MPI_Finalize();return(0);}但是,它似乎没有编译:UndefinedfirstreferencedsymbolinfileMPI::Dat

c++ - 如何在不使用 GL_LINE_SMOOTH 的情况下使用 OpenGL 在 2D 场景中绘制平滑线条?

由于GL_LINE_SMOOTH不是硬件加速的,也不支持所有GFX卡,您如何在2D模式下绘制平滑的线条,看起来与GL_LINE_SMOOTH一样好?Edit2:我目前的解决方案是从2个四边形绘制一条线,从边缘渐变到零透明度,这2个四边形之间的颜色将是线条颜色。它适用于基本的平滑线条渲染,并且不使用纹理,因此渲染速度非常快。 最佳答案 因此,您想要流畅的线条,但不包含:线条平滑。全屏抗锯齿。着色器。好的。最好的办法是使用Valve的Alpha-TestedMagnificationtechnique.根据您的需要,基本思想是创建一个表

c++ - 谁能帮我从一个简单的 Hello World 中解释这个 MSVC Debug模式反汇编?

我得到了以下简单的C++代码:#includeintmain(void){::printf("\nHello,debugger!\n");}从WinDbg中,我得到了以下反汇编代码:SimpleDemo!main:0111138055pushebp011113818becmovebp,esp0111138381ecc0000000subesp,0C0h0111138953pushebx0111138a56pushesi0111138b57pushedi0111138c8dbd40ffffffleaedi,[ebp-0C0h]01111392b930000000movecx,30h011