
===OpenGL===
YYyyCCCcccBb
觉得为时已晚的时候,恰恰是最早的时候。
展开
-
OpenGL-glLoadIdentity()的作用,线框模式,多边形,点变化,移动
openGL 画四边形 glBegin(GL_QUAD_STRIP);//start to draw something // n/2-1 quad // 2n-1 2n 2n+2 2n+1 //1: 1 2 4 3 //2: 3 4 6 5 glColor4ub(255, 0, 0, 255);//每个颜色占8字节 set color: white glVe原创 2017-03-24 16:30:52 · 2785 阅读 · 0 评论 -
Bézier Spline Curves
思路:每次套公式得到x,y,的值并且逐步改变点的坐标// ====== Computer Graphics Experiment #7 ======// | Bezier curve |// =============================================//// Requirement:原创 2017-06-09 17:21:44 · 512 阅读 · 1 评论 -
OpenGL-shader排除错误方法
平常在写shader的时候,因为shader都是由显卡来跑的,因此需要特殊的方法来排除shader内容的错误,比如大小写或者逻辑错误GLuint CompileShader(GLenum shaderType, const char *shaderCode) { GLuint shader = glCreateShader(shaderType); //传入shader种类创建shader原创 2017-11-23 10:15:54 · 3234 阅读 · 0 评论 -
OpenGL可编程笔记一-绘制三角形
重新整理了一下,还好没把网课学的还给老师。。个人理解大体分为这六部分一: shader准备部分(读取,编译shader)二:创建程序program并且绑定链接shader三:shader已经绑定,链接好,则销毁shader在当前程序中的文件四:绑定数据五:绘图六:初始化,为下次做准备。再具体些:第一部分:1.读取文件到vsShader,fsShader原创 2017-11-22 21:09:07 · 323 阅读 · 0 评论 -
openGL可编程笔记二——解码bmp文件并添加纹理
解码BMP文件部分:入口函数 GLuint CreateTexture2DFromBMP(const char *bmpPath); 1.加载bmp文件内容2.解码bmp文件3.用bmp文件设置当前的纹理第二部分:1 .解码bmp文件需要注意0x4D42 是bmp文件开始格式2. 指针偏移到像素数据地址3. bmp文件是bgr格式,要转化为rgb格式第三部分:原创 2017-11-25 11:23:55 · 848 阅读 · 0 评论 -
vs,C++Win32项目中,添加运行窗口
win32项目正常情况下没有控制台程序自行出现的运行窗口,此时就要开始手动引入引入方法看图:原创 2017-06-20 16:24:46 · 1706 阅读 · 0 评论 -
OpenGL-2D(Cohen-Sutherland 裁线算法)
使用的是Cohen-Sutherland 裁线算法,先把区域编号,之后裁剪。注意在移动的时候是用裁剪窗口去判断,而不是windows窗口。// ====== Computer Graphics Experiment #6 ======// | Two-Dimensional Viewing and Clipping |// ==========================原创 2017-06-03 10:05:29 · 1325 阅读 · 0 评论 -
OpenGL实现画线-线形-线宽转变
思路:在画线算法的基础上,添加像素掩膜,&1为1则画否则不画。// ====== Computer Graphics Experiment #4 ======// | Line style using pixel mask |// | and line width | // =============原创 2017-05-31 20:05:16 · 4211 阅读 · 0 评论 -
OpenGL学习!!!第一步自己搭windows环境
第一步:先建立窗口和各种初始函数#include LRESULT CALLBACK GLWindowProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam){ switch (msg) { case WM_CLOSE://关闭窗口 PostQuitMessage(0); break; } return原创 2017-03-15 19:32:03 · 672 阅读 · 0 评论 -
OpenGL画点
#include #include #include #pragma comment(lib,"opengl32.lib")#pragma comment(lib,"glu32.lib")LRESULT CALLBACK GLWindowProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam){ switch (msg)原创 2017-03-15 20:47:35 · 1062 阅读 · 0 评论 -
GL画线-画三角形方法
GL划线 glBegin(GL_LINES);//start to draw something glVertex3f(0.0f, 0.0f, -10.0f); glVertex3f(-5.0f, 0.0f, -10.0f); glVertex3f(-5.0f, 0.0f, -10.0f); glVertex3f(-5.0f, -2.0f, -10.0f);GL画收尾相接原创 2017-03-16 20:44:12 · 1989 阅读 · 0 评论 -
openGL-光照
//init light float blackColor[] = { 0.0f,0.0f,0.0f,1.0f }; float whiteColor[] = { 1.0f,1.0f,1.0f,1.0f }; float lightPos[] = { 0.0f,1.0f,0.0f,0.0f };//y轴正方向来, 注意后面的法线方向 glLightfv(GL_LIGHT0, GL_AMB原创 2017-03-31 17:58:08 · 441 阅读 · 0 评论 -
vs2015处理当前相对目录下的方法
跟着网课做了好久,人家就可以跑,然而我就一跑就崩,加了绝对路径就能过,搜了一个多小时资料才发现办法!右键项目属性-》 c/c++-> 常规 ->附加包含目录, 点进去就好了!还有一个问题是引用文件,在vs2015生成时候会生成一个debug 和一个项目名称的文件夹,如果要引用相对路径 ,需要把文件放在这个项目名称的文件夹里面原创 2017-04-03 16:17:01 · 5063 阅读 · 0 评论 -
OpenGL类型名与C的对应关系!
转自http://cabbage812.blog.163.com/blog/static/92281438200931402330645/为了便于OpenGL在各种平台上移植,OpenGL定义了自己的数据类型。如果你愿意也可用这些数据类型对应的标准C的数据类型来替代。如OpenGL也定义GLvoid类型,如果用C语言编写,可以用它替代void类型。不同的C编译器或环境对各种C变量的大小和内转载 2017-04-04 13:30:26 · 707 阅读 · 0 评论 -
网课内容--解码BMP与创建纹理
texture.cpp#include "texture.h"#include "utils.h" unsigned char* DecodeBMP(unsigned char*bmpFileData, int&width, int&height){ if (0x4D42==*((unsigned short*)bmpFileData)) { printf("yes");原创 2017-04-04 13:33:45 · 373 阅读 · 0 评论 -
给vs2012添加glut库
glut下载地址:http://www.opengl.org/resources/libraries/glut/glutdlls37beta.zip1.在c盘中搜索GL.h,将从网上下载的压缩包解压后,将glut.h放在和GL.h的相同目录中2.在安装vs2012的文件夹中,我的是 D:\vs2012\VC\lib,在这个路径下将glut.lib和glut32.lib放进转载 2017-05-05 16:48:34 · 598 阅读 · 0 评论 -
向量类操作
#include class Vector3{public : float x,y,z; Vector3(){} Vector3(const Vector3 & a): x(a.x),y(a.y),z(a.z){} Vector3(float nx,float ny,float nz): x(nx) ,y(ny),z(nz){} Vector3 &o原创 2017-04-26 21:33:16 · 1329 阅读 · 0 评论 -
openGL-边界填充
思路:先将线框边界画出来,填充为白色。之后用glReadPixels函数得到某个像素点的颜色值。之后判断是否被填充过,或是否为边界颜色,如果没有被填充,就将其四个方向的像素点入栈再填充void Boundaryfill (int seedx,int seedy){ CMyStack stk1; long color=RGB(255,0,0); //填充颜色 long原创 2017-05-31 19:37:08 · 1992 阅读 · 0 评论 -
openGL可编程笔记三——将Shader,VertexBuffer封装
如果每次都绘制不同的图形,我们就需要每次都写重复的代码。所以这里封装了一下对于Shader而言:第一部分:shader初始化: 解码vs, fs,并且链接为程序,并且指定shader代码部分中,GPU插槽位置void Shader::Init(const char *vs, const char *fs) { int nFileSize = 0; const char* v原创 2017-11-26 19:33:46 · 608 阅读 · 0 评论