- 博客(14)
- 资源 (2)
- 收藏
- 关注
原创 smd模型查看器
近日整理电脑中的代码,翻出我一年前写的一个smd格式模型查看器,觉得挺好玩的,决定共享出来。这个查看器支持smd格式的模型、骨骼动画和贴图。另外还加了可以实现高光效果的shader。alyxkorin工程文件下载地址:http://download.youkuaiyun.com/detail/racehorse/4510694一些smd格式模型的例子:http://
2012-08-19 19:13:10
12703
1
翻译 【GLSL教程】(九)其他说明
法线矩阵在很多顶点shader中都用到了gl_NormalMatrix。这里将介绍这个矩阵是什么,以及它的作用。大部分计算是在视图空间内完成的,主要原因是光照的运算要放在这个空间内,否则一些依赖观察点坐标的效果,比如镜面反射光就很难实现。所以我们需要将法线变换到视图空
2011-08-06 10:37:51
15157
17
翻译 【GLSL教程】(八)纹理贴图
简单的纹理贴图(Simple Texture)为了在GLSL中应用纹理,我们需要访问每个顶点的纹理坐标。GLSL中提供了一些属性变量,每个纹理单元一个:attribute vec4 gl_MultiTexCoord0;attribute vec4 gl_MultiTex
2011-08-06 10:22:01
48143
2
翻译 【GLSL教程】(七)逐像素的光照
逐像素的方向光(Directional Light per Pixel)这一节将把前面的shader代码改为逐像素计算的方向光。我们需要将工作按照两个shader拆分,以确定哪些是需要逐像素操作的。首先看看每个顶点接收到的信息:•法线•半向量•光源方向我们
2011-08-05 11:34:04
20117
2
翻译 【GLSL教程】(六)逐顶点的光照
引言在OpenGL中有三种类型的光:方向光(directional)、点光(point)、聚光(spotlight)。本教程将从方向光讲起,首先我们将使用GLSL来模仿OpenGL中的光。我们将向shader中逐渐添加环境光、散射光和高光效果。后面的教程中
2011-08-04 09:35:19
21802
翻译 【GLSL教程】(五)卡通着色
引言卡通着色可能是我们可以写出的最简单的非真实模式shader。它使用很少的颜色,通常是几种色调(tone),因此不同色调之间是突变的效果。下图显示的就是我们试图达到的效果:茶壶上的色调是通过角度的余弦值选择的,这个角度是指光线和面的法线之间的夹角角度。如果法线和光的夹角比较小,
2011-07-28 17:25:43
22084
翻译 【GLSL教程】(四)shder的简单示例
GLSL的Hello World这一节中包含一个最基本的shader,它提供如下功能:顶点变换然后使用单一的颜色渲染图元。顶点shader前面已经说过,顶点shader负责完成顶点变换。这里将按照固定功能的方程完成顶点变换。固定功能流水线中一个顶点通过模型视图矩阵以及投影矩阵进行
2011-07-27 17:00:50
69871
1
翻译 【GLSL教程】(三)在OpenGL中向shader传递信息
(三)在OpenGL中向shader传递传信息引言一个OpenGL程序可以用多种方式和shader通信。注意这种通信是单向的,因为shader的输出只能是渲染到某些目标,比如颜色和深度缓存。OpenGL的部分状态可以被shader访问,因此程序改变OpenGL某些状态就可以与sh
2011-07-26 15:15:41
51114
2
翻译 【GLSL教程】(二)在OpenGL中使用GLSL
(二)在OpenGL中使用GLSL设置GLSL这一节讲述在OpenGL中配置GLSL,假设你已经写好了顶点shader和像素shader。如果你还没有准备好,可以从如下网址获得相关内容:http://www.3dshaders.com/home/http://www.opengl
2011-07-19 12:13:25
45889
翻译 【GLSL教程】(一)图形流水线
这是一些列来自lighthouse3d的GLSL教程,非常适合入门。我将边学习边翻译该教程的内容,同时记录在这里,方便以后查询。流水线概述下图描述了一个简化的图形处理流水线,虽然简略但仍然可以展示着色器编程(shader programming)的一些重要概念。一个固定流水线包括
2011-07-08 22:07:31
73591
2
原创 一个Linux2.6版内核字符驱动的例子
看了《Linux设备驱动程序》的前几章,我结合这篇教程中给出的一个2.4版内核的字符驱动,自己编写了一个2.6版内核的驱动程序,并且加上了详细的注释。这个程序很简单,但是对初学者把握2.6版内核的字符驱动的脉络应该有一定的帮助,也可以算作我对《Linux设备驱动程序》前几章学习的一个小结。#globalvar.c#include //模块所需的大量符号和函数定义#include
2007-11-14 12:40:00
4220
1
原创 用Bochs学习Minix(3)-调试启动过程
/boot文件是一个实模式的可执行文件,运行地址是0x10000,使用反汇编工具打开boot文件,可以看到boothead.s的第一条指令被编译在0x1000:0030处。前面已经指出,这就是从bootblock.s跳转到的位置。这条指令是一个跳转:jmp 1002:0015它实际上就是跳转到下面一行:mov ax, 1000 //指令地址:0x10035…接下来可以看到代
2007-11-08 00:56:00
3684
原创 用Bochs学习Minix(2)-启动过程分析
Minix的启动过程分为两步,第一步运行masterboot.s或者bootblock.s中的内容。对于有分区的硬盘,它的第一个扇区是MBR(Master Boot Record),其中包含有引导代码和分区表。如果硬盘有子分区,则每个子分区的第一个扇区也具有单独的引导代码。此外,引导代码也可以被放到软盘的第一个扇区。masterboot.s的代码存放在MBR中,它适合引导装在不同分区上的Mini
2007-11-05 12:58:00
4508
1
原创 用Bochs学习Minix-建立试验环境
《操作系统设计与实现(第二版)》是一本极好的学习操作系统的教材,由于这本书是以Minix操作系统为例进行讲解,所以我们需要一个可以运行Minix的试验环境,你可以将它直接安装在PC的一个分区中,但我在这里推荐使用Bochs。Bochs是一款用来模拟PC的开源软件,可以从http://bochs.sourceforge.net获得,目前最新的版本是2.3.5。Bochs与其他x86虚拟机软件的
2007-11-03 15:38:00
4532
4
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人