杨帆博客

你想开发游戏还是改变世界?


  • 首页

  • 标签

  • 归档

  • 搜索

【DirectX】21-视锥裁剪

发表于 2018-04-06 | 更新于: 2018-08-22

教程地址

Tutorial 16: Frustum Culling

学习记录

  在透视投影(3D投影)中,我们所能看到的区域根本上来看很像是一个锥形。如下:

1

  如图,E 是我们的摄像机位置,摄像机所能观察到的角度则是我们的 FOV ,近截面和远截面则是我们最近和最远所能看到的平面。我们的透视投影矩阵便是拿这些数据来构造:

1
XMMatrixPerspectiveFovLH( fov  , width / height , near , far);

  所以我们的可视区域则是这个锥形体的内部部分。在这个视锥之外的物体则不会被渲染,一般情况下我们将所有要渲染的顶点传入 GPU ,GPU将会检查是否可见,如果不可见将会被剔除。但是将这个任务交给 GPU 的话其效率确实很低。假设我们有渲染数千个物体,而只有十几个是可见的,那么我们需要将数千个物体的顶点信息传递给 GPU 并在渲染时判断,这无疑的十分浪费资源的。因此我们需要在传递数据之前进行判断这个模型是否在我们的视锥体之内,如果没有那么干脆不去发送它。

阅读全文 »

【DirectX】20-数据更新

发表于 2018-04-04 | 更新于: 2018-08-22

  这篇文章中,我们将介绍一些比较简单的内容,主要是对于之前代码的一些修改。在之前我们的代码中,例如 【directx】18-fps与cpu使用率 这一篇中。由于帧数和 cpu 使用率的数值是不断变化的,所以我们需要实时的生成不一样的顶点数据,这样程序会在每一帧运行的时候去申请一段空间,然后送给 GPU 。虽然我们也自己处理了一部分的内存释放,例如在申请 vertex 数组前先判断数组是否存在,存在的话先去释放它。但是也还是有很大的改进空间,这篇文章主要就是对这个进行更改。

阅读全文 »

Jump-Game

发表于 2018-04-04 | 更新于: 2018-08-22

题目地址

LeetCode#55 跳跃游戏

题目描述

  给定一个非负整数数组,您最初位于数组的第一个索引处。数组中的每个元素表示您在该位置的最大跳跃长度。确定是否能够到达最后一个索引。

阅读全文 »

Spiral-Matrix

发表于 2018-04-03 | 更新于: 2018-08-22

题目地址

LeetCode#54 Spiral Matrix

题目描述

  给出一个 m x n 的矩阵(m 行, n 列),请按照顺时针螺旋顺序返回元素。

阅读全文 »

【DirectX】19-DirectSound

发表于 2018-04-03 | 更新于: 2018-08-22

教程地址

Tutorial 14: Direct Sound

学习记录

  这篇文章中,我们将主要介绍 DX 中的音频输入 DirectSound 。与之前一样,这篇文章主要简单的介绍它的使用流程和完成一个播放的小例子。在此之前,如果对音频格式不太了解的话,可以看这里:维基百科:音频格式

阅读全文 »
1…141516…46
KsGin

KsGin

游戏程序员/计算机图形学/Unity/西山居搬砖

226 日志
16 标签
GitHub E-Mail Google Twitter
© 2018 KsGin @ 2018
0%