自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

nxtgo

一个废弃的栖息亭

  • 博客(57)
  • 收藏
  • 关注

转载 Light烘培原理

什么是烘焙? 简单地说, 就是把物体光照的明暗信息保存到纹理上, 实时绘制时不再进行光照计算, 而是采用预先生成的光照纹理(lightmap)来表示明暗效果. 那么, 这样有什么意义呢?好处:由于省去了光照计算, 可以提高绘制速度对于一些过度复杂的光照(如光线追踪, 辐射度, AO等算法), 实时计算不太现实. 如果预先计算好保存到纹理上, 这样无疑可以大大提高模型的光影效果保存下

2016-03-18 16:07:57 4047

转载 视锥体裁剪

视锥体(frustum),是指场景中摄像机的可见的一个锥体范围。它有上、下、左、右、近、远,共6个面组成。在视锥体内的景物可见,反之则不可见。为提高性能,只对其中与视锥体有交集的对象进行绘制。视锥体我们计算出视锥体六个面的空间平面方程,将点坐标分别代入六个面的平面方程做比较,则可以判断点是否在视锥体内。空间平面方程可表示为: Ax+By+C

2016-01-20 09:31:13 6500 1

翻译 Unity中使用Vertex Snapping(顶点捕捉)

Select the mesh you want to manipulate and make sure the Transform Tool is active. 选择你想要操作的网格,并确保变换工具处于活动状态。 Press and hold the V key to activate the vertex snapping mode. 按住V键激活顶点捕捉模式。Move

2016-01-16 16:41:19 3614

转载 Unity的一些优化建议

最简单的优化建议:1.PC平台的话保持场景中显示的顶点数少于200K~3M,移动设备的话少于10W,一切取决于你的目标GPU与CPU。2.如果你用U3D自带的SHADER,在表现不差的情况下选择Mobile或Unlit目录下的。它们更高效。3.尽可能共用材质。4.将不需要移动的物体设为Static,让引擎可以进行其批处理。5.尽可能不用灯光。6.动态灯光更加不要了。

2014-12-12 21:29:29 1025

转载 Reconstructing Position From Depth

需求: 根据当前像素的Depth计算出其View空间的Position先说一种惯性思维的方法: 既然知道depth是怎么算出来的, 那么进行逆运算回去不就得到position了?先说说depth是怎么出来的:Vertex shader:output.position = mul(input.postion, matWorldViewProject);outp

2014-12-12 21:24:25 617

转载 3D图形渲染通道负载优化的几种小技巧

一般来说, 定位渲染通道瓶颈的方法就是改变渲染通道每个步骤的工作量, 如果吞吐量也改变了, 那个步骤就是瓶颈. 找到了瓶颈就要想办法消除瓶颈, 可以减少该步骤的工作量, 增加其他步骤的工作量. 一般在光栅化之前的瓶颈称作”transform bound”, 三角形设置处理后的瓶颈称作”fill bound” 定位瓶颈的办法1.       改变帧缓冲或者渲染

2014-12-12 21:22:18 1002

转载 Early Z Rejection

http://software.intel.com/en-us/vcsource/samples/early-z-rejectionThis sample demonstrates two ways to take advantage of early Z rejection. When rendering, if the hardware detects that after per

2014-12-12 20:25:31 800

原创 自己做的一些渲染demo的截图

镜面倒影法线贴图(关闭)法线贴图(打开)diffuse map + normal mapShadow Map阴影(PCF过滤)Shadow Volume阴影(点光)Shadow Volume阴影(方向光)SSAO关闭(只打了环境光)SSAO打开(未对AO map做过滤)FXAA抗锯齿关闭FXAA抗锯齿打开(3级/5

2014-01-14 20:53:48 1496

转载 3D引擎优化方法整理

来自:http://blog.csdn.net/udking/article/details/6048210【游戏开发】DirectX 性能优化:(From D3D9 SDK)2009-06-04 15:19性能优化:(From D3D9 SDK) 常规技巧1 只在必须的时候Clear。IDirect3DDevice9::Clear函数通常需要花费较多的时间,因此要尽量少调用,而且只清

2013-11-18 15:42:51 3205

转载 次时代引擎技术一览

来自:http://blog.csdn.net/udking/article/details/6048199API: Driectx 11.0 & 10 Driectx 9.0CTexture Resolution(材质解析度) :16384*16384Quadcore-Multithreading(多核心多线程) √Tesselation(曲面细分)        √Defe

2013-11-18 15:41:26 940

转载 判断多边形是顺时针还是逆时针的方法

1、关于如何判定多边形是顺时针还是逆时针对于凸多边形而言,只需对某一个点计算cross product = ((xi - xi-1),(yi - yi-1)) x ((xi+1 - xi),(yi+1 - yi)) = (xi - xi-1) * (yi+1 - yi) - (yi - yi-1) * (xi+1 - xi)如果上式的值为正,逆时针;为负则是顺时针而对于一般的简单多边形,则

2013-11-03 19:04:25 5955

转载 凹凸贴图(bump mapping)综述

What`s Bump Mapping?Bump Mapping通过改变几何体表面各点的法线,使本来是平的东西看起来有凹凸的效果,是一种欺骗眼睛的技术:)。我们知道,如果几何体表面有高低不平的凹凸,那么表面上各点的法线方向就会不同,那么当光照射到这些点上时,各点光照产生效果就不一样,那么我们最终看到的各点就是凹凸不平的。如果几何体表面是平的,但是各点的法线方向各不相同,当用光照模型进行

2013-10-04 19:58:06 2968

转载 OS中的内核线程与用户线程

用户级线程:从这张图上面可以看出来,用户级线程的管理是由应用程序的进程来完成的,而不关内核的事。在内核看来还是只有进程的概念,所以线程的调度也就可以通过应用程序自己设定,不用核心态的特权。但是也就是因为这样,在内核中没有线程的概念,如果一个线程进入内核,然后再系统调用的时候阻塞了,那么,核心只会把它作为整个进程阻塞了,也就是说这个进程中的所有线程都被阻塞了。线程状态和进程状态是独立

2013-10-04 17:52:00 1572

转载 TCP建立与释放连接的过程

图1:TCP建立与释放连接的状态变迁图TCP建立连接在TCP/IP协议中,TCP协议提供可靠的连接服务,采用三次握手建立一个连接。 第一次握手:建立连接时,客户端发送syn包(syn=j)到服务器,并进入SYN_SEND状态,等待服务器确认; 第二次握手:服务器收到syn包,必须确认客户的SYN(ack=j+1),同时自己也发送一个SYN包(syn=k),即SYN+ACK包

2013-10-03 11:02:12 2546

原创 延时渲染(Deferred Shading)

延时渲染(deferred shading)相对于前向渲染(forward shading)主要有以下两个优势:(1) 只对看得见的像素进行光照计算,对于深度比较复杂(像素被超过4个以上的面片所覆盖)以及灯光数目较多的场景,可以有效提高渲染速度;(2)将光照与其他效果分离,可以大大减少shader组合的数量,假设光照效果数为M,其他效果数为N,对于前向渲染,则需要组合出M*N个shader,而对于延时渲染,只需要M+N个shader即可。

2013-10-02 22:18:08 2695

原创 【Leetcode】Validate Binary Search Tree

Given a binary tree, determine if it is a valid binary search tree (BST).

2013-10-01 22:36:48 1557

原创 【Leetcode】Given a binary tree, check whether it is a mirror of itself

Given a binary tree, check whether it is a mirror of itself (ie, symmetric around its center).

2013-10-01 22:03:10 1658

原创 【Leetcode】Given a binary tree, find all root-to-leaf paths whose sum equals a given number

Given a binary tree and a sum, find all root-to-leaf paths where each path's sum equals the given sum.For example:Given the below binary tree and sum = 22, 5 / \

2013-10-01 21:43:55 1841

原创 【Leetcode】Path Sum from root to leaf in binary tree

Given a binary tree and a sum, determine if the tree has a root-to-leaf path such that adding up all the values along the path equals the given sum.For example:Given the below binary tree and sum

2013-10-01 21:28:51 1136

转载 BSS段,数据段,代码段,堆,栈

转载自:http://www.cppblog.com/prayer/archive/2009/08/17/93594.htmlBSS段:BSS段(bss segment)通常是指用来存放程序中未初始化的全局变量的一块内存区域。BSS是英文Block Started by Symbol的简称。BSS段属于静态内存分配。数据段:数据段(data segment)通常是指用来存放程序中已

2013-09-29 15:58:22 786

转载 多线程死锁问题

多线程死锁问题前天俺们谈到了加锁(线程同步),但是在使用加锁的同时又会带来一个问题,就是死锁。什么叫死锁?所谓死锁: 是指两个或两个以上的进程在执行过程中,因争夺资源而造成的一种互相等待的现象,若无外力作用,它们都将无法推进下去。发生死锁的原因一般是两个对象的锁相互等待造成的。那么为什么会产生死锁呢?1.因为系统资源不足。2.进程运行推进的顺序不合适。    3.资

2013-09-29 15:04:12 986 1

转载 Linux架构

作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明。谢谢! 我们以下图为基础,说明Linux的架构(architecture)。(该图参考《Advanced Programming in Unix Environment》) 最内层是我们的硬件,最外层是我们常用的各种应用,比如说使用firefox浏览器,打开ev

2013-09-29 14:20:58 982

转载 Linux进程基础

作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明。谢谢! 计算机实际上可以做的事情实质上非常简单,比如计算两个数的和,再比如在内存中寻找到某个地址等等。这些最基础的计算机动作被称为指令 (instruction)。所谓的程序(program),就是这样一系列指令的所构成的集合。通过程序,我们可以让计算机完成复杂的操作。程序大多数时

2013-09-29 14:08:48 650

转载 c++模板特化

一、模板特化, specialization of template模板特化(specialization of template)并不是说实例化一个模板,如template ,class stack;声明stack,这是实例化一个模板类。类模板特化的意思是,对于某个特定的类型,需要对模板进行特殊化,即特殊的处理。例如,stack类模板针对bool类型有特化,因为实际上bool类型只需要一个二

2013-09-27 15:40:29 867

转载 堆和栈的区别

一、预备知识—程序的内存分配 一个由C/C++编译的程序占用的内存分为以下几个部分 1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其 操作方式类似于数据结构中的栈。 2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回 收 。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表,呵呵。 3、全局区(

2013-09-27 14:00:50 827

原创 OpenGL中的拾取(Picking)

OpenGL本身支持基于图像空间的拾取,这里指的是几何拾取,即由屏幕点击触发一条射线,然后和场景中的物体求交,进而判断是否拾取到物体

2013-09-21 22:15:13 3533 1

原创 【Leetcode】Remove Duplicates from Sorted Array

Given a sorted array, remove the duplicates in place such that each element appear onlyonce and return the new length.Do not allocate extra space for another array, you must do this in place with

2013-09-21 16:33:30 1244

原创 OpenGL渲染管线

OpenGL Rendering Pipeline框图,分为顶点变换,图元装配和光栅化,像素着色以及像素运算四个阶段。1、顶点变换这个阶段的输入是顶点集以及顶点的属性信息,在个阶段完成这些操作:(1) 对顶点进行变换;(2)逐顶点光照;(3)纹理坐标生成以及变换,变换的顶点信息会传递到一个阶段。2、图元装配以及光栅化这个阶段做以下操作:(1)根据顶点的连接信息装配成图元,如线段

2013-09-20 21:44:07 1857

原创 阴影锥(Shadow Volume)

Shadow Map和Shadow Volume是当今比较流行的实时阴影渲染方法,跟Shadow Map相比,Shadow Volume最大的优点是没有阴影锯齿问题,但由于它是基于几何的方法,每帧都有可能要构造和渲染阴影锥,而且有些工作必须由CPU完成,使得它在效率上没有Shadow Map高,因为其计算都是在GPU端完成的;不过对于室内场景或者objects不多的室外场景,Shadow Volume仍有用武之地,阴影锥的实现有多种算法,而且可以做比较多种优化,这里学习一下Z-PASS和Z-FAIL算法,它

2013-09-19 17:55:06 11023 2

原创 【Leetcode】Same Tree

给定两棵二叉树,判断是否相等(即树的结构以及各结点中的值都一样)Given two binary trees, write a function to check if they are equal or not.Two binary trees are considered equal if they are structurally identical and the nodes

2013-09-17 21:51:17 2684

原创 【Leetcode】Triangle

给定一个由数字组成的三角形,从顶至底找出路径最小和。Given a triangle, find the minimum path sum from top to bottom. Each step you may move to adjacent numbers on the row below.For example, given the following triangle

2013-09-17 21:21:51 3088 1

原创 【Leetcode】Set Matrix Zeroes

给定一个m x n的矩阵,如果某个元素为0,则把该元素所在行和列全部置0。Given a m x n matrix, if an element is 0, set its entire row and column to 0. Do it in place.分析:最直接想到的就是遍历该矩阵,每遇到0就把它所在的行和列全部置0,但这是错的,因为这样会引入新的0到矩阵中。下一个比较容易相

2013-09-17 19:58:10 1482

原创 【Leetcode】Search in Rotated Sorted Array II

从一个旋转的排序数组中寻找一个数字,数组中可能有重复数字,要求时间复杂度O(LogN)。( 1 1 1 2 4  might become 1 1 2 4 1).You are given a target value to search. If found in the array return true, otherwise return false.思路:二分查找,需要注意的

2013-09-17 17:43:01 1981

原创 【Leetcode】Search in Rotated Sorted Array

在旋转的无重复的排序数组中查找某个数,要求时间复杂度O(logN)Suppose a sorted array is rotated at some pivot unknown to you beforehand.(i.e., 0 1 2 4 5 6 7 might become 4 5 6 7 0 1 2).You are given a target value to sear

2013-09-17 17:33:42 3944

原创 基于Shadow Map的阴影实现

0、简介Shadow Mapping是一种基于图像空间的阴影实现方法,其优点是实现简单,适应于大型动态场景;缺点是由于shadow map的分辨率有限,使得阴影边缘容易出现锯齿(Aliasing);关于SM的研究很活跃,主要围绕着阴影抗锯齿,出现了很多SM变种,如PSM,LPSM,VSM等等,在这里http://en.wikipedia.org/wiki/Shadow_mapping可以找到很

2013-09-16 21:39:06 7221 2

原创 【Leetcod】Unique Binary Search Trees II

给定结点数n,结点值为1,2,...,n,求由这些结点可以构成的所有二叉查找树。

2013-09-15 18:09:27 3247 3

原创 【Leetcode】Unique Binary Search Trees

假设给定n个节点,节点值为1,2,3,...,n,求由这些结点可以构成多少棵不同的二叉查找树。

2013-09-15 18:04:22 6462 2

原创 【Leetcode】Recover Binary Search Tree

Two elements of a binary search tree (BST) are swapped by mistake.Recover the tree without changing its structure.Note:A solution using O(n) space is pretty straight forward. Could you devise a

2013-09-14 22:09:27 2006 1

原创 【Leetcode】Minimum Depth of Binary Tree

Given a binary tree, find its minimum depth.The minimum depth is the number of nodes along the shortest path from the root node down to the nearest leaf node.求一棵树的最小深度,即从根结点到叶节点路径中,最短路径中结点的个数。思路是先

2013-09-14 20:34:54 1295

原创 【Leetcode】Flatten Binary Tree to Linked List

Given a binary tree, flatten it to a linked list in-place.把一棵二叉树原地(不另外开空间)转化成链表。

2013-09-14 20:00:34 1033

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除