- 博客(49)
- 收藏
- 关注
原创 OpenGL着色器(二)
ProvokingVertex.vp// ProvokingVertex flat shader demo// Vertex Shader// Richard S. Wright Jr.// OpenGL SuperBible#version 130in vec4 vColor;in vec4 vVertex;flat out vec4 vVaryingColor;voi
2013-12-31 13:05:21 989
原创 openGL着色器学习(一)
顶点着色器Identity.vp// The Identity Shader// Vertex Shader// Richard S. Wright Jr.// OpenGL SuperBible#version 130in vec4 vVertex;void main(void) { gl_Position = vVertex; }Iden
2013-12-30 16:41:50 962
转载 Real-Rime Rendering (10) - 图形硬件及学习小结(Graphics Hardware)
提要 时代在变,硬件也在变,但一些基本的架构其实根本未变,就像计算机发展了这么多年,还是逃不了几百年前图灵机所定下的:存储器;控制器;运算器,输入设备和输出设备。图形硬件也有自己的套路。流处理器和ROPs通常我们在选购显卡的时候,常常会注意显存,位宽什么的,但时常会忽略最重要的参数:流处理器和ROPs。 在传统显卡的管线架构中,我们经常说道某张
2013-12-29 16:10:26 849 1
转载 c语言中所有文件操作函数详解fopen、fwrite、fread、fgetc、fputc、fscanf、fprintf、ftell、fseek等函数
由于最近经常使用到c语言中的读写文件,所以在此总结以下,方便以后查找. 在c中,文件操作都是由库函数来实现的,主要是分为读和写两种操作,以下详细讲解以下所有有关文件操作的邯郸乎的用法:(1)fopen()函数:打开文包含头文件:#include格式:FILE * fopen(const char * path,const char * mode);参数
2013-12-29 14:35:37 1481
原创 OpenGL学习(九)纹理初步
// Tunnel.cpp// Demonstrates mipmapping and using texture objects// OpenGL SuperBible// Richard S. Wright Jr.#include #include #include #include #include #include #include #ifdef __APPLE__
2013-12-29 10:51:12 1189
原创 随笔
openGL 超级宝典为什么一直要封装自己的类来用,作者说是为了见底入学者的门槛,可我为什么一直不觉得,反倒是因封装带来的隐蔽性降低了我的学习效率。
2013-12-29 10:49:08 622
原创 OpenGL学习(八) 纹理初步
// Pyramid.cpp// OpenGL SuperBible, Chapter 5// Demonstrates Texture mapping a pyramid// Program by Richard S. Wright Jr.#include // OpenGL toolkit#include #include #include #include #inclu
2013-12-29 00:39:36 1689
原创 OpenGL学习(七) 矩阵学习
// ModelviewProjection.cpp// OpenGL SuperBible// Demonstrates OpenGL the ModelviewProjection matrix// Program by Richard S. Wright Jr.#include // OpenGL toolkit#include #include #include #inc
2013-12-28 21:06:24 1332
原创 OpenGL学习(六)锯齿
// Smoother.cpp// OpenGL SuperBible// Demonstrates point and line antialiasing// Program by Richard S. Wright Jr.#include // OpenGL toolkit#include #ifdef __APPLE__#include #else#define FRE
2013-12-28 15:17:28 1011
原创 OpenGL学习(五) 几何图形
// GeoTest.cpp// OpenGL SuperBible// Demonstrates OpenGL Backface culling, depth testing, and polygon mode// Program by Richard S. Wright Jr.#include // OpenGL toolkit#include #include #includ
2013-12-28 14:44:31 1376 2
原创 openGL学习(四) 混合效果
// Blending.cpp// Move a Block based on arrow key movements,// Blend it with background blocks#include // OpenGL toolkit#include #ifdef __APPLE__#include #else#define FREEGLUT_STATIC#inclu
2013-12-28 14:42:52 1137
原创 openGL的动画效果(三)
// Move.cpp// Move a Block based on arrow key movements#include // OpenGL toolkit#include #ifdef __APPLE__#include #else#define FREEGLUT_STATIC#include #endifGLBatch squareBatch;GLShade
2013-12-28 14:41:13 2421
原创 OpenGL 学习(二)
环境同上一篇,为VC++2008.// Bounce.cpp// Bounce a Block around the screen#include // OpenGL toolkit#include #ifdef __APPLE__#include #else#define FREEGLUT_STATIC#include #endifGLBatch squareBa
2013-12-28 14:39:37 898
转载 编写静态链接库(这个比较详尽)
在VC++6.0中new一个名称为libTest的static library工程,并新建lib.h和lib.cpp两个文件,lib.h和lib.cpp的源代码如下://文件:lib.h#ifndef LIB_H#define LIB_Hextern "C" int add(int x,int y); //声明为C编译、连接方式的外部函数#endi
2013-12-26 19:28:06 696
转载 编写静态库
1、工程的建立选择Win32项目,输入工程名 在应用程序设置中选择“静态库”选项 这样就完成了工程的创建2、添加两个文件,一个为lib.cpp,另一个为头文件lib.h。我们所编写的函数放在lib.cpp,而其原型放在lib.h。这两个文件的内容为://lib.cpp #include "lib.h" int add(int x,in
2013-12-26 14:00:14 639
原创 lib文件 与dll文件
简单说就是静态库和动态链接库,这两个概念是随着程序规模不断增大渐渐出现的.从C语言开始说起。 C语言本身只有32个关键字,9种控制语句,34种运算符,的确是一门简单的语言。这样一门简单的语言在实用的时候并非一件好事,比如C语言没有输入输出语句,程序员在输入输出时不得不借助于库函数。 库函数是什么?简单的说,就是把常用的函数写好放到库里便于以后直接使用,这个库就称为函数库,函数被称为
2013-12-26 13:40:36 894
原创 openGL 超级宝典第五版学习 第一个程序
以前一直用code block12.11写openGL,但那时还用的第四版宝典。第五版第六版用code block觉得特别无语,最后不得已改用了vosual studio 2008express 。折腾了一上午成功写出第一个显示三角形的例子。// Triangle.cpp// Our first OpenGL program that will just draw a trian
2013-12-26 12:20:49 1346 1
原创 openGL剪裁的使用
#include #include void RenderScene(void){ glClearColor(0.0f,0.0f,1.0f,0.0f); glClear(GL_COLOR_BUFFER_BIT); glClearColor(1.0f,0.0f,0.0f,0.0f); glScissor(100, 100, 600, 400); gl
2013-12-19 13:24:45 1166
原创 openGL 旋转的图形 矩阵操作
#include #ifdef __APPLE__#include #else#include #endif#include static int slices = 16;static int stacks = 16;/* GLUT callback Handlers */static void resize(int width, int height){ c
2013-12-18 22:03:53 1170
转载 OpenGL中glVertex2f函数与gluOrtho2D的参数的对应关系,以及常见函数的对应坐标系
两个函数的函数原型如下:glVertex(GLfloat x, GLfloat y);gluOrtho2D(GLdouble left, GLdouble right, GLdouble bottom, GLdouble top);简单的说前者的两个参数所代表的坐标点,必须落在后者参数所形成的坐标系内,不然该点就在viewport之外。举个例子:void d
2013-12-17 23:44:40 1889
转载 OpenGL投影变换函数gluOrtho2D()和视口变换函数glViewport()
1. void glOrtho(GLdouble left,GLdouble right,GLdouble bottom,GLdouble top, GLdouble near,GLdouble far)正射投影,又叫平行投影。正射投影的最大一个特点是无论物体距离相机多远,投影后的物体大小尺寸不变。其中近裁剪平面是一个矩形,矩形左下角点三维空间坐标是(left,bottom,-n
2013-12-17 23:41:26 1059
原创 openGL螺旋曲线绘制
#include #include #include ///////////////////////////////////////////////////////////// Called to draw scenevoid RenderScene(void) { static GLdouble dRadius = 0.1; static GLdou
2013-12-17 22:38:28 1255
转载 minix masterboot解读
写一点关于minix引导过程的文章,从无系统状态下的引导写起。硬盘的第一个扇区称为master boot block(系统主引导区),用于存放主引导程序。当系统起动的时候系统BIOS把起动盘的第一个扇区的内容装进内存的固定位置(0x7C00),然后程序跳转到地址0x7C00处运行。硬盘的第一个扇区上的内容就是master boot recod(简称MBR,中文为系统主引导),它是系统的第一
2013-12-17 21:53:57 831
转载 Windows下轻松加载BMP, GIF, JPEG, PNG, and TIFF图片
Windows下轻松加载BMP, GIF, JPEG, PNG, and TIFF图片,并用OpenGL生成纹理[cpp] view plaincopy/* window下OpenGL加载纹理,图片格式BMP, GIF, JPEG, PNG, and TIFF
2013-12-15 16:38:36 1185
原创 openGL 螺旋曲线
#include #ifdef __APPLE__#include #else#include #endif#include #include // Define a constant for the value of PI#define GL_PI 3.1415f// Rotation amountsstatic GLfloat xRot = 0.0f;static
2013-12-15 01:36:15 1624
原创 斐波那契数列使用递归为何效率不高
关键在于他没有分治。二叉树、、左式堆合并、快速排序等使用递归效率就好得多,虽说要比非递归实现效率低些,但也是递归的出色表现了!
2013-12-14 23:56:57 1347
转载 OpenGL概念辨析: 窗口,视口,裁剪区域
http://www.cnblogs.com/Sylla-Zhang/archive/2012/06/19/Sylla.html网上很多文章都谈过窗口,视口,裁剪区域这些概念,但感觉看了还是不很明白。下面是我个人实践过后的一些看法:1.窗口:这就不用解释了吧2.视口:就是窗口中用来显示图形的一块矩形区域,它可以和窗口等大,也可以比窗口大或者小。只有绘制在视口区域中的图形
2013-12-13 14:28:35 1831
转载 对要学习编程人员的忠告
http://blog.csdn.net/zhu_xun/article/details/17217837本文是由Cecily Carver 分享的她在编程道路上的所感所想,希望对那些要踏入编程界的或者已经在编程界工作的人提供一些帮助。Cecily Carver 是多伦多的一位程序媛,和 Jennie Faber 一起创办了一个游戏制作工作室。她喜欢歌剧、舞蹈和弹钢琴。Ceci
2013-12-11 11:45:21 579
原创 图的邻接表存储
#ifndef GRAPH_H_INCLUDED#define GRAPH_H_INCLUDEDtypedef struct node{ int adjvertex; int weight; struct node* next;}*EdgeNode;typedef struct vertex{ int start; EdgeNode fir
2013-12-11 11:38:28 774
转载 动态链接库
http://zh.wikipedia.org/wiki/%E5%8A%A8%E6%80%81%E9%93%BE%E6%8E%A5%E5%BA%93动态链接库(Dynamic Link Library或者Dynamic-link library,缩写为DLL),是微软公司在微软视窗操作系统中实现共享函数库概念的一种实作方式。这些库函数的扩展名是.DLL、.OCX(包含Activ
2013-12-08 11:50:02 614
原创 图的邻接表存储,以及广度深度遍历
graph.h#ifndef GRAPH_H_INCLUDED#define GRAPH_H_INCLUDED/**< 图的邻接矩阵实现 */#define MAXVERTEX 100#define INFINITY 65535typedef char Vertex;struct graph;typedef struct graph *Graph;
2013-12-06 16:07:44 698
原创 插入排序
void InsertSort(int A[],int n){ int j,P; int temp; for(P=1;P<n;P==) { temp=A[P]; for(j=P;j>0 && A[j-1]>temp;j--) A[j]=A[j-1]; A[j]=temp; }}
2013-12-06 09:08:57 649
原创 dijstra算法
dijstra.h#ifndef DIJSTRA_H_INCLUDED#define DIJSTRA_H_INCLUDED #define MAXVEX 100 /**< 最多顶点数 */#define INFINITY 65535/**< 不存在该边是的权值 */ struct graph;typedef struct graph *Graph;typ
2013-12-05 20:13:27 1004
原创 归并排序的非递归实现
merge.h#ifndef MERGE_H_INCLUDED#define MERGE_H_INCLUDED #define MAXSIZE 1000typedef struct{ int R[MAXSIZE]; int length;} sqlist;typedef sqlist *Sqlist; void mergepass(int SR[
2013-12-05 14:53:42 573
转载 朴素模式的字符串匹配实例(K&R书中的例子)
#include #include #define MAXLINE 1000 int getline(char line[],int max);int strindex(char source[],char searchfor[]); char pattern[]="ould"; int main() { char line[MAXLINE];
2013-12-05 14:50:12 601
原创 堆排序
heapsort.h#ifndef HEAPSORT_H_INCLUDED#define HEAPSORT_H_INCLUDED #define MAXSIZE 1000 typedef struct{ int R[MAXSIZE]; int length;}sqlist;typedef sqlist *Sqlist; void Swap(S
2013-12-05 14:47:33 567
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人