2010年3月20日

解决VS中注释乱码的问题

摘要: 使用VS编写程序,经常会有中文注释,拿到另外一些系统上却发现注释变成了乱码,这一般是由于编码格式不当造成的,下面给出解决方案1. 首先打开VS2008,选择Tools-Option-Text Editor-Settings,将Auto detect UTF-8 encoding without signature 勾上,如果问题解决,OK2. 如果问题没有解决,那么用VS打开含有乱码的源文件,选择... 阅读全文

posted @ 2010-03-20 10:38 前端风云志 阅读(24460) 评论(0) 推荐(2)

2010年3月19日

输出循环小数

摘要: 刚刚在博客园看到的一个题,写出来,留作备份,两个整数a和b,输出他们的商,循环小数要加括号。example:1/3 输出 0.(3)2/8 输出 0.2523/6 输出 3.8(3)思路:两个数组,一个存储商,一个存储余数,前者用于检查余数是否重复出现,后者用来输出小数部分。1. 能整除的直接输出2. 否则,一直除,直到余数为0或者余数重复出现。输出所有的小数部分即可,两次余数出现之间的加上括号代... 阅读全文

posted @ 2010-03-19 11:42 前端风云志 阅读(884) 评论(2) 推荐(0)

2010年3月14日

扑克牌概率

摘要: 一副扑克牌,去除大小王,剩下52张,从中任意取两张,能成一对的概率是多大?解法一:52张牌任选两张,共有C(2, 52) = (52×51)/ 2×1 = 1326种组合同一点数的4张牌任选两张,有C(3, 4) = 6种组和,而一副牌有13种点数,所以成一对的组合有6×13 = 78种那么,52张牌任选两张成一对待概率是78/1326 = 1/17解法二:我们先计算... 阅读全文

posted @ 2010-03-14 22:59 前端风云志 阅读(12896) 评论(5) 推荐(1)

2010年3月12日

反转一个整数

摘要: 原型:unsigned Reverse(unsigned int n) ;我的代码:用了浮点函数log10, pow不仅效率低,还会损失精度。Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->1unsignedReverse(unsignedn)2{3intdigits=(int)log10((double)n);45intr=0;6while(n)7{8intt=n%10;9r+=t*pow((double)10,digits--);10n/ 阅读全文

posted @ 2010-03-12 17:35 前端风云志 阅读(2297) 评论(0) 推荐(0)

一道概率题-From VCK 小白

摘要: 题目描述:一个随机函数f(),只返回1和0,返回1的概率是p,返回0的概率是1-p,构造另外一个函数,只返回1和0,概率各1/2答案,有代码有真相Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.Co... 阅读全文

posted @ 2010-03-12 09:08 前端风云志 阅读(533) 评论(0) 推荐(0)

2010年3月9日

基于时间的渲染框架

摘要: 下面是一个基于时间的渲染框架代码Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->1//Getlasttime2staticfloatlastTime=(float)timeGetTime();34while(msg.message!=WM_QUIT)5{6if(PeekMessage(&msg,NULL,0U,0U,PM_REMOVE)!=0)7{8TranslateMessage(&msg);9DispatchMessage 阅读全文

posted @ 2010-03-09 11:31 前端风云志 阅读(532) 评论(0) 推荐(0)

2010年3月8日

两个面试题-仅供娱乐,切勿模仿

摘要: 代码包括两个题1. 返回两个int型数中的较大者,不准用关系运算符,不准用if, while, for等语句2. 一句代码求字符串长度代码Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/--1#include<iostream>2usingna... 阅读全文

posted @ 2010-03-08 16:23 前端风云志 阅读(760) 评论(0) 推荐(0)

Vector与数组的转化

摘要: 可以重载*运算符 1 operator float *(){ return &_x ;} ;2 operator const float *() const{ return &_x ; } ;3 仿照D3D库中的例子,写出如下代码 #include <iostream> using namespac 阅读全文

posted @ 2010-03-08 10:05 前端风云志 阅读(10290) 评论(0) 推荐(0)

2010年3月5日

PAK file format

摘要: pak  以.pak结尾的文件是pak Quake系列游戏所采用的一种特殊压缩包格式,由Quake游戏公司开发,一般用户无法打开。  简单来说pak是一种少见的压缩文件格式;可以将多个文件压缩成一个文件,例如RAR将多个文件压缩成1个RAR文件。现在好多游戏的客户端都采用这种特殊的压缩包格式,以利于游戏的开发。由于是针对于游戏的设计和使用而采用的文件结构,所以与一般的压缩文件格式有所不同,它的特点... 阅读全文

posted @ 2010-03-05 10:42 前端风云志 阅读(1518) 评论(0) 推荐(0)

2010年3月4日

Creating and Using a Dynamic Link Library

摘要: Walkthrough: Creating and Using a Dynamic Link Library 原文链接:http://msdn.microsoft.com/en-us/library/ms235636(VS.80).aspxIn this walkthrough, you will create a dynamic link library (DLL) containing use... 阅读全文

posted @ 2010-03-04 17:23 前端风云志 阅读(619) 评论(0) 推荐(0)

Creating and Using a Static Library

摘要: 原文链接-http://msdn.microsoft.com/en-us/library/ms235627(VS.80).aspxWalkthrough: Creating and Using a Static Library In this walkthrough, you will create a static library (LIB) containing useful routines... 阅读全文

posted @ 2010-03-04 17:04 前端风云志 阅读(590) 评论(0) 推荐(0)

only static const integral data members can be initialized within a class

摘要: 翻译一下:只有静态整型常量数据成员能在类中初始化那么哪些数据属于整型呢,下面的都是charshortint longlong long所以只有以上这些类型的数据能在类中初始化,也就是你可以这样写Code highlighting produced by Actipro CodeHighlighter... 阅读全文

posted @ 2010-03-04 09:32 前端风云志 阅读(4592) 评论(1) 推荐(0)

2010年3月2日

Terrain walking

摘要: 需要注意到几个问题1. 如果行走时出现抖动,那么可能是地图高度差太大,也就是忽高忽低。2. 插值不够狠,多几次,使地图变得smooth一些3. 当高度差改变一定值时在更新当前高度,比如至少改变1.0时才更新,比如前一次的高度是2.0, 现在的高度是1.5,那么差是0.5,太小,不做改变,当前高度仍保持为2.0,但是差要累加。当累加值超过1.0时,再改变。比如前一次高度是2.0, 此次高度是1.5,... 阅读全文

posted @ 2010-03-02 09:49 前端风云志 阅读(373) 评论(0) 推荐(0)

2010年3月1日

新版SDK发布时该做什么?

摘要: 当一个新版本的DirectX SDK发布时,第一时间以新版SDK为基础编译你的程序,如果没有错误,则不需修改。如果有错误,则需要进行相应的升级工作,比如下面这个例子,如果你用Auguest 2009的SDK编译以前的程序,会遇到如下错误fatal error C1083: Cannot open include file: 'dxerr9.h': No such file or directory... 阅读全文

posted @ 2010-03-01 10:48 前端风云志 阅读(2247) 评论(2) 推荐(0)

2010年2月26日

骨骼动画

摘要: 制作骨骼动画 从max中 1。首先要得到各个关节(bone)的链接关系(父子关系) 2。得到每个关节(bone)在每帧的矩阵 游戏中 1。组合得到各个关节 2。动画实际上就是每帧设置各个关节的矩阵 。一套骨骼应该有一个root节点用来控制translate,其他的关节(bone)只有rotate 。关节(bone)的矩阵是local的,在送给directx的时候需要和父关节相乘。 。max中的骨骼... 阅读全文

posted @ 2010-02-26 16:30 前端风云志 阅读(799) 评论(0) 推荐(0)

2010年2月21日

Shortcuts

摘要: General选择文件/文件夹/图标按第一个文件名字母搜索  F3重命名选中文件-F2显示开始菜单Ctrl + Esc或Win键创建桌面快捷方式按Alt并拖拽指定文件到桌面拷贝          直接拖拽增加拷贝按Ctrl并拖拽最小化所有窗口Win + D运行Win + RWord选择文本  Shift+方向键更换字体Ctrl + Shift + F增大字体Ctrl + Shift + >缩... 阅读全文

posted @ 2010-02-21 10:22 前端风云志 阅读(443) 评论(0) 推荐(0)

2010年2月1日

sscanf用法小结

摘要: sscanf可以对字符串进行格式化,类似于一个微型的正则表达式话不多说,一切尽在代码中。。。代码 Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/--12//直接读入3char*s="abc";4char*buf[10];5sscanf(s,"%s",bu... 阅读全文

posted @ 2010-02-01 14:13 前端风云志 阅读(598) 评论(0) 推荐(1)

2010年1月22日

类型转化:float -> DWORD

摘要: #include<iostream>#include<windows.h>using namespace std;int main(void){float f = 1.1 ;DWORD d1 = (DWORD)f ;DWORD d2 = *(DWORD *)&f ;cout << d1 << endl ; // output: 1cout &... 阅读全文

posted @ 2010-01-22 11:57 前端风云志 阅读(1570) 评论(0) 推荐(0)

2010年1月20日

Drill into View Matrix

摘要: How does DirectXbuild the view matrix -From MSDND3DXMatrixLookAtLHBuilds a left-handed, look-at matrix.D3DXMATRIX * D3DXMatrixLookAtLH( D3DXMATRIX * pOut, CONST D3DXVECTOR3 * pEye, CONST D3DXVECTOR... 阅读全文

posted @ 2010-01-20 22:14 前端风云志 阅读(526) 评论(0) 推荐(0)

2009年12月21日

Lua Script - 初次接触

摘要: 今天学习了Lua Script,发个小程序,求一个表中的最大值 代码 links Lua for Windows 阅读全文

posted @ 2009-12-21 21:34 前端风云志 阅读(749) 评论(0) 推荐(0)

2009年12月13日

原来VisualStudio本身也可以查看调试信息

摘要: 一直以为需要借助第三方工具,例如DebugView等,其实VS本身就有这个功能,只要在Debug的时候打开Output窗口即可,这样就可以观察由OutputDebugString函数输出的调试信息了 阅读全文

posted @ 2009-12-13 23:12 前端风云志 阅读(586) 评论(0) 推荐(0)

2009年11月28日

ScreenToVector详解

摘要: 如果您正在学习ArcBall技术或者您对于屏幕坐标到三维坐标的转换有些模糊,那么一定不要错过本篇。ScreenToVector函数是微软DXUT框架中AcrBall类中的一个函数,它的作用是完成二维屏幕坐标到三维球坐标的转换,先看一下函数定义代码Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->1D3DXVECTOR3CD3DArcBall::ScreenToVector(floatfScreenPtX,floatfScreenPtY)2{3/ 阅读全文

posted @ 2009-11-28 23:28 前端风云志 阅读(4427) 评论(10) 推荐(2)

2009年11月25日

使用DirectX截屏

摘要: 如果截图变黑,请参考这一篇,DirectX截图黑屏的解决办法。网上有很多关于DirectX截屏的文章,但大都是屏幕截图,很少有窗口截图,本文则两者都涉及到,先讲如何截取整个屏幕,再讲如何截取某个窗口,其实二者的区别不大,只是某个参数的设置不同而已,最后我们还将扩展到任意区域的截图。首先看一下截屏用到的函数,最核心的当然是D3DXSaveSurfaceToFile,先看下函数原型Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->1HRESULTD 阅读全文

posted @ 2009-11-25 23:22 前端风云志 阅读(24908) 评论(56) 推荐(5)

DirectX 总结

摘要: DDSDirectXDraw Surface file format, .dds。这是微软从DirectX7开始引进的一种文件格式,它用来存储压缩的或未压缩的纹理,该格式支持mimaps cube maps和volume maps, D3DX和许多其他的DX工具都支持这种格式,比如DirectX Texture Editor(dxtex.exe)和Texture Conversion Tool(Texconv.exe),从D3D110开始,DDS文件也支持纹理数组DXGIDirectX Graphics Infrastructure转换为.x格式MeshConvert.exe,这个tool位于 阅读全文

posted @ 2009-11-25 15:48 前端风云志 阅读(8863) 评论(26) 推荐(5)

2009年11月22日

在3D程序中使用坐标轴提示

摘要: 一般的3D图形软件都有坐标轴提示的功能,比如3DMax,当旋转物体时,坐标轴也跟着旋转,这样就能实时跟踪物体的角度了,今天我们自己手动做一个,以前一直觉得挺难,今天做起来忽然发现,其实也很简单,说白了,就是画线而已,下面是3DMAX中的坐标轴提示图。坐标轴是由线段组成的,但由于DirectX中的ID3DXLine接口只能用来绘制2D直线,所以我们这里使用DrawPrimitive函数并传递D3DPT_LINELIST来绘制3D直线,旋转使用的是ArcBall技术,先上个图吧,做成以后效果如下,比起上面那个来,比较丑陋,但是功能一样好了,下面介绍详细步骤,首先我们来定义顶点格式,因为绘制直线首先 阅读全文

posted @ 2009-11-22 21:24 前端风云志 阅读(5285) 评论(2) 推荐(0)

2009年11月19日

DirectX Effects初探

摘要: 一个effect包括以下几部分:一个vertex shader和/或一个pixel shader,一个需要设置的设备状态列表,一个或多个渲染管道。此外,设计一个备用机制以使effect能够在不同级别的图形设备上工作也是很有用的-也即对于同一个效果设计不同的版本。Direct3D将effects放在effect文件中,这样做的好处是,首先它使我们能够随时改变一个effect的实现而不必重新编译程序的源代码,这使得使用effect非常简单,方便。其次它将所有的东西封装到了一个文件里面。一个effect包含一个或多个techniques,一个technique就是渲染某个effect的用的特定方法, 阅读全文

posted @ 2009-11-19 17:41 前端风云志 阅读(3457) 评论(1) 推荐(0)

2009年11月18日

HLSL-高级着色语言简介

摘要: HLSL-High Level Shader Language优点用来书写Vertex Shader和Pixel Shader程序的代码,语法类似于C/C++,在DirectX 8.x的时代,Shader程序都是用低级Shader汇编语言编写的,姑且称之为LLSL吧,HLSL与之相比具有以下优点:更高的生产力,使用HLSL编程更快更容易,使我们有更多的时间关注与算法而不是编码更好的可读性,使用HLSH编写的程序更易读,易调试及维护编译器将生成更加高效的汇编代码可以将同一份代码编译成任何可用的Shader版本,但是用LLSL则必须按不同版本编写代码如果你的显卡不支持Shader的话,那么可以使用 阅读全文

posted @ 2009-11-18 16:09 前端风云志 阅读(2462) 评论(0) 推荐(1)

2009年11月6日

Quaternion和Rotation Matrix的相互转换

摘要: 设有Quaternion q(x, y, z, w), rotation axis(x, y, z), rotation angle (theta),则Quaternion和Axis-Angle有如下对应关系,q.x = sin(theta / 2) * axis.xq.y = sin(theta ... 阅读全文

posted @ 2009-11-06 09:41 前端风云志 阅读(8764) 评论(4) 推荐(1)

2009年11月4日

如何使用DXUT框架

摘要: DXUT是什么?DXUT即DirectX Utility Library,它是微软为DirectX Samples写的一个框架,有了这个框架,Sample的构建就方便多了,这个框架实际上抽取了构建Sample的公共代码,比如处理窗口消息,处理设备丢失与重设等等,将这些代码提取出来放到DXUT中,便于... 阅读全文

posted @ 2009-11-04 10:00 前端风云志 阅读(9602) 评论(18) 推荐(9)

如何配置DirectX开发环境

摘要: 一个DirectX程序要想正确的编译和链接,需要下面三个主要前提安装DirectX SDK正确配置.h文件路径和.lib文件路径正确链接所需.lib文件安装DirectX SDK可以直接到微软的官方网站上下载最新的SDK,Microsoft DirectX SDK(June 2010)是微软发型的最后一个独立的DX SDK,以后则不再单独发行DX SDK,而是集成到Windows SDK当中。如果使用的是Visual Studio 2010及以前的版本,那么需要安装DX SDK,如果使用 Visual Studio 2012及后续版本,则自带Windows SDK(包含DirectX)。配置. 阅读全文

posted @ 2009-11-04 09:46 前端风云志 阅读(18067) 评论(8) 推荐(2)

2009年10月29日

Pixel Shader - 像素着色

摘要: IntroductionPixel Shader是一段执行在GPU上的程序,只限于光栅化阶段。与Vertex Shader不同的是,D3D不会使用软件模拟Pixel Shader,Pixel Shader基本上取代了fixed pipeline中的multitexturing阶段,它使我们能够直接操作单独的像素,访问他们的纹理坐标,这使我们能够获得许多特效,比如多重纹理,逐像素光照,depth of field, 云效果,火焰效果,以及一些成熟的着色技术。Multitexturing因为Multitexturing是能用Pixel Shader实现的最简单的技术,所以我们有必要看一下什么是Mu 阅读全文

posted @ 2009-10-29 16:38 前端风云志 阅读(1533) 评论(2) 推荐(0)

散射光的计算方法

摘要: diffuse lighting calculates the amount of light that a vertex receives based on the angle between the vertex normal and the light vector (which points in the direction of the light source). The smalle... 阅读全文

posted @ 2009-10-29 10:51 前端风云志 阅读(582) 评论(0) 推荐(0)

list of shading algorithm

摘要: http://en.wikipedia.org/wiki/List_of_common_shading_algorithms 阅读全文

posted @ 2009-10-29 10:49 前端风云志 阅读(318) 评论(0) 推荐(0)

2009年10月28日

Vertex Shader-顶点着色入门

摘要: Vertex Shader是什么?顶点着色是一段执行在GPU上的程序(一般用HLSL来编写),用来取代fixed pipeline中的transformation和lighting,Vertex Shader主要操作顶点。当然前提是硬件要支持,软件模拟的不算有图则一目了然Vertex Shader做了什么工作由上图知,Vertex Shader对输入顶点完成了从local space到homogeneous clip space的变换过程,homogeneous clip space即projection space的下一个space。在这其间共有world transformation, v 阅读全文

posted @ 2009-10-28 21:18 前端风云志 阅读(3955) 评论(0) 推荐(0)

使用Camera的几个步骤

摘要: 1.绘图前初始化Camera矩阵2.程序运行时,根据用户动作实时更新Camera矩阵3.绘图时先取得Camera矩阵,然后应用该矩阵绘图4.在消息处理过程中调用Camera的消息处理函数只有这样才能实时得到变化的Sence下面看一下核心代码1. 在InitD3D函数中初始化三种矩阵,world matrix, view matrix, porjection matrix,对应步骤1[代码]2. 定... 阅读全文

posted @ 2009-10-28 11:30 前端风云志 阅读(1574) 评论(0) 推荐(0)

2009年10月27日

Side-by-Side Assembly

摘要: http://en.wikipedia.org/wiki/Side-by-Side_Assembly http://spench.net/drupal/resources/winsxs DLL hell http://en.wikipedia.org/wiki/DLL_hell 阅读全文

posted @ 2009-10-27 15:30 前端风云志 阅读(301) 评论(0) 推荐(0)

使用D3DXCreateSphere绘图的步骤

摘要: DX内置的绘制几何图形的函数D3DX中有几个现成的函数可以绘制常见的3D模型D3DXCreateBox D3DXCreateSphereD3DXCreateCylinder //圆柱D3DXCreateTeapot D3DXCreatePolygonD3DXCreateTorus //圆环体,类似于面包圈这些函数有三个参数是一样的,它们分别是 1. 第一个参数 LPDIRECT3DDEVICE9 ... 阅读全文

posted @ 2009-10-27 10:38 前端风云志 阅读(5177) 评论(0) 推荐(1)

多线程总贴

摘要: 进程从Win32的角度来看,进程含有内存和资源,进程拥有的内存最大可高达2GB。内存1. Code 只读的,这是CPU唯一允许执行的内存2. Data 包括程序中的变量,不包括函数中的局部变量,分为全局变量和静态变量3. Stack 调用函数时使用,包含局部变量,每个线程创建时都有一个Stack资源1. 核心对象-文件句柄,线程等2. 用户资源-窗口,对话框,字符串等3. GDI资源-Device Context和Brushes等进程本身并不能够执行,它只是提供一个安置内存和线程的地方,Matt Pietrek在其Windows 95 System Programming SECRETS一书中 阅读全文

posted @ 2009-10-27 10:22 前端风云志 阅读(609) 评论(2) 推荐(0)

2009年10月18日

这个网站怎么回事?都快成博客园的备份了!

摘要: 转载也要说一声吧?http://www.viqiwu.com/showforum-2.aspx 阅读全文

posted @ 2009-10-18 13:34 前端风云志 阅读(1460) 评论(4) 推荐(0)

2009年10月17日

射线与平面的相交检测(Ray-Plane intersection test)

摘要: 射线的定义在欧几里德几何中,射线的定义是:直线上一点和它一旁的部分。由此可知,射线有两个性质,一是只有一个端点,二是一端无限延伸。射线的参数方程其中p0是射线的起点, u是射线的方向向量,t >= 0,根据t的取值不同,可得射线上不同的点,所有这些点便构成了整个射线,如图平面的定义平面可以由法向量和平面内的一点来确定,因为过一点,有且只有一个平面与已知直线垂直平面的参数方程其中n是平面的法向量,p0是已知的平面内一点,符号●表示点积,因n与平面垂直,所以n与平面内任意直线垂直, 而(p-p0)则是平面内的一个向量,所以n与 (p-p0)垂直,而互相垂直的向量其点积为0,见下图向量的点积公 阅读全文

posted @ 2009-10-17 22:24 前端风云志 阅读(14853) 评论(11) 推荐(2)

导航

关注我

前端风云志