置顶随笔

[置顶]DirectX实现球面纹理映射

摘要: 介绍球面纹理映射就是将一个平面纹理映射到球面上。见下图。实现球面纹理映射有两种方法,一种是使用顶点的法向量来生成纹理坐标,另一个是使用顶点的位置向量来生成纹理坐标。使用顶点的法向量生成纹理坐标分析问题的本质是根据球面上每个点的法向量坐标生成对应的纹理坐标,请看下图,下图中外部的方框表示二维纹理坐标,其范围是(u,v)min = (0,0), (u,v)max = (1,1),中间的圆形表示球面法向量坐标,其x,y分量的范围是(x,y)min = (-1,-1), (x,y)max = (1,1)。所以问题的本质变成了两组坐标的映射,也即将区间(x,y)min - (x,y)max映射到区间(u阅读全文

posted @ 2011-09-13 21:23 zdd 阅读(1082) 评论(4) 编辑

[置顶]使用DirectX截屏

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

posted @ 2009-11-25 23:22 zdd 阅读(3415) 评论(14) 编辑

2011年9月15日

也谈走台阶问题

摘要: 问题刚才在首页看到一篇博客,说的是腾讯的一道面试题:一个楼梯有50个台阶,每一步可以走一个台阶,也可以走两个台阶,请问走完这个楼梯共有多少种方法?博主把这题分析的很麻烦。引来很多人围观。我以前也碰到过这个问题。写出来和大家分享一下。举个例子,假设有3个台阶,则有三种走法:分别是,1-1-1, 1-2, 2-1。分析很简单的一道题,学过组合数学的人很快就能想到,这是一个递推关系。假设走完k个台阶有f(k)种走法。k = 1时,f(k) = 1k = 2时,f(k) = 2k = n时,第一步走一个台阶,剩n-1个台阶,有f(n - 1)种走法。第一步走两个台阶,剩n-2个台阶,有f(n - 2)阅读全文

posted @ 2011-09-15 14:23 zdd 阅读(1338) 评论(14) 编辑

2011年7月14日

数组面试题-子数组之和

摘要: 昨天在一位老兄的凡客面试题中看到的,拿来写一下。题目描述给定一个含有n个元素的整形数组a,再给定一个和sum,求出数组中满足给定和的所有元素组合,举个例子,设有数组a[6] = { 1, 2, 3, 4, 5, 6 },sum = 10,则满足和为10的所有组合是{1, 2, 3, 4}{1, 3, 6}{1, 4, 5}{2, 3, 5}{4, 6}注意,这是个n选m的问题,并不是两两组合问题。解法一:穷举法最直观的想法就是穷举,把数组中元素的所有组合情况都找出来,然后看看哪些组合满足给定的和即可,这种方法的计算量非常大,是指数级的,假设数组有n个元素,那么所有组合的情况一共有2 ^ n种(阅读全文

posted @ 2011-07-14 17:24 zdd 阅读(1897) 评论(29) 编辑

2011年7月11日

也谈杨辉三角形

摘要: 很久没更新博客了,来篇水的。今天看见有位兄弟写了杨辉三角形,记得以前自己也研究过,索性也发一篇,欢迎讨论。来历杨辉三角形也叫贾宪三角形,西方叫帕斯卡三角形,其实就是各阶二项式系数排列起来构成的三角形,如下。每行的数字实际上是(a + b) ^ n展开后的结果。 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1历史上发现这个三角形的人很多,这里介绍几个主要的,北宋人贾宪约1050年首先使用“贾宪三角”进行高次开方运算。杨辉,字谦光,南宋时期杭州人。在他1261年所著的《详解九章算法》一书中,辑录了如上所示的三角形数表,称之为“开方作法本源”图。欧洲直到1623年以后,法国数学家帕斯卡在阅读全文

posted @ 2011-07-11 17:48 zdd 阅读(1573) 评论(3) 编辑

2011年7月8日

八进制字符与十六进制字符

摘要: 一般形式在C中有两种特殊的字符,八进制转义字符和十六进制转义字符,八进制字符的一般形式是'\ddd',d是0-9的数字。十六进制字符的一般形式是'\xhh',h是0-9或A-F内的一个。八进制字符和十六进制字符表示的是字符的ASCII码对应的数值。比如'\063'表示的是字符'3',因为'3'的ASCII码是30(十六进制),48(十进制),63(八进制)。'\x41'表示的是字符'A',因为'A'的ASCII码是41(十六进制),65(十进制),101(八进制)。字阅读全文

posted @ 2011-07-08 13:36 zdd 阅读(302) 评论(0) 编辑

2011年6月3日

Direct2D教程(七)单色画刷

摘要: 概述画刷是D2D中最重要的资源之一,无论绘制什么图形,都离不开画刷,它好比是画家手中的画笔。画刷由render target创建,是设备相关的资源,如果渲染设备重建了,那么需要重新建立画刷。Direct2D中有以下四种类型的画刷,这些画刷全部继承自ID2D1Brush,并且有一些共同特征(比如设置和获取opacity,以及transform)。ID2D1SolidColorBrush 单色画刷 ID2D1LinearGradientBrush 线性梯度色画刷 ID2D1RadialGradientBrush 放射梯度色画刷 ID2D1BitmapBrush 位图画刷下面是几种画刷及其对应的绘制阅读全文

posted @ 2011-06-03 12:34 zdd 阅读(1553) 评论(7) 编辑

2011年6月1日

Direct2D教程(六)图形也能做运算

摘要: 概述大家都学过集合运算,给定两个集合,可以求他们的并集,交集,差集等。其实图形之间也能做运算,今天就带大家开始图形运算之旅,讲讲如何合并图形。在D2D中有四种方法合并图形,分别是并(UNION),交(INTERSECT),差(EXCLUDE)和异或(XOR)。那么图形之间是如何合并的呢?两个图形之间进行Xor的结果是什么呢?为了便于理解,我先把效果图贴上来。下面图片中第一副图示两个圆的原始图,第二副图是UNION的结果,取两个圆所有的部分,但是公共部分只保留一份。第三幅图是INTERSECT的结果,取两个圆的公共部分。第四幅图是XOR的结果,取两个圆公共部分以外的部分。最后一幅图是EXCLUD阅读全文

posted @ 2011-06-01 09:37 zdd 阅读(1693) 评论(2) 编辑

2011年5月31日

Direct2D教程(五)复合图形

摘要: 概述Direct2D支持以下几种类型的几何图形。Simple Geometry(简单几何图形) 矩形 圆角矩形 椭圆Path Geometry(路径图形)Composite Geometry(复合图形) Geometry Group(图形组) Transformed Geometry(变换的图形)上一篇介绍了Path geometry,这篇介绍复合图形。复合图形也可以叫做合成图形,包含两种,一种是图形组,即由多个图形组成的一组图形,另一种是经过变换的图形,D2D支持的变换有四种,平移,旋转,缩放和倾斜。图形组由于图形组是一组图形的集合,所以如果对图形组进行操作,会影响到其中每一个图形,这对批量阅读全文

posted @ 2011-05-31 10:05 zdd 阅读(1442) 评论(1) 编辑

2011年5月27日

Direct2D教程(四)Path Geometry

摘要: 概述Direct2D支持以下几种类型的几何图形,上一篇介绍了简单几何图形,这篇介绍Path geometry。Simple Geometry(简单几何图形)矩形圆角矩形椭圆Path Geometry(路径图形)Composite Geometry(复合图形)Geometry Group(图形组)Transformed Geometry(变换的图形)Path geometry,说白了,就是以路径来描述图形,由于翻译过来比较别扭,所以下文中出现该词的地方全部使用英文。Path geometry可以用来创建复杂的几何图形,因为无论多么复杂的图形都可以由一些基本的几何图元来表示,Path geomet阅读全文

posted @ 2011-05-27 09:02 zdd 阅读(1552) 评论(4) 编辑

2011年5月25日

Direct2D教程(三)简单几何图形

摘要: 从本章开始,我们介绍D2D几何图形。D2D图形分类Direct2D支持多种类型的几何图形,包括Simple Geometry(简单几何图形)矩形圆角矩形椭圆Path Geometry(路径图形)Composite Geometry(复合图形)Geometry Group(图形组)Transformed Geometry(变换的图形)各种图形对应的D2D接口如下,所有接口都继承自ID2D1Geometry。矩形-ID2D1RectangleGeometry圆角矩形-ID2D1RoundedRectangleGeometry椭圆-ID2D1EllipseGeometry路径图形-ID2D1Path阅读全文

posted @ 2011-05-25 09:48 zdd 阅读(1867) 评论(5) 编辑

2011年5月23日

Direct2D教程(二)来看D2D世界中的Hello,World

摘要: 引子任何一门语言的第一个教程几乎都是Hello,world。我们也不例外,但是这里不是教大家打印Hello,world,而是编写一个简单的D2D绘制程序,让大家对Direct2D的程序结构及编程方法有一个基本的认识。下面我们来看如何一步一步绘制一个矩形。基本概念在开始之前,还是先介绍一些基本的概念,有助于大家理解程序,这些概念包括,Brush(画刷),Render target(渲染目标),Geometry(几何图形),它们会贯穿整个教程,所以越早介绍越好,对于有Windows GDI基础的人来说,理解这些概念很容易。没有基础的也没关系,我们可以先了解一下,随着学习的深入,会有更加深刻的认识。阅读全文

posted @ 2011-05-23 20:26 zdd 阅读(2080) 评论(4) 编辑

导航

<2012年2月>
2930311234
567891011
12131415161718
19202122232425
26272829123
45678910

公告

昵称:zdd
园龄:2年9个月
荣誉:推荐博客
粉丝:78
关注:6

搜索

 

常用链接

随笔分类

随笔档案

Game Engine

缤纷世界

其他

友情链接

积分与排名

  • 积分 - 75302
  • 排名 - 1394

最新评论

阅读排行榜

评论排行榜

推荐排行榜