Directx11教程(56) 建立一个skydome】的更多相关文章

原文:Directx11教程(56) 建立一个skydome       本章建立一个skydome(天空穹),主要学习如何使用cube mapping.      cube map就是把六张纹理当作一个cube的六个面,而cube的中心,则是坐标轴,而六个面则是垂直于坐标轴某个轴,如下图所示,在cube mapping中,我们不在使用二维纹理坐标,而是用(u,v,w)三维纹理坐标,用这个坐标产生一个查询向量,这个向量和cube 纹理的交点,即为该顶点对应的纹理texel.           …
原文:Directx11教程(10) 画一个简易坐标轴       本篇教程中,我们将在三维场景中,画一个简易的坐标轴,分别用红.绿.蓝三种颜色表示x,y,z轴的正向坐标轴. 为此,我们要先建立一个AxisModelClass类,来表示坐标轴顶点.       现在系统类之间的关系图如下: AxisModelClass类和前面的ModelClass类相似,只是创建顶点缓冲和索引缓冲时,指定了3条线段,表示三个坐标轴. AxisModelClass.h的主要代码如下: #pragma once #…
原文:Directx11教程(5) 画一个简单的三角形(1)       在本篇教程中,我们将通过D3D11画一个简单的三角形.在D3D11中,GPU的渲染主要通过shader来操作(当然还有一些操作是由GPU固定管线完成,比如光栅化操作),最常用的shader操作是顶点shader(vertex shader)和像素shader(pixel shader).其实shader就是在GPU中执行的代码,这些代码被driver编译成硬件依赖的机器码,最终被GPU中shader pipe执行,从而完成…
原文:Directx11教程(55) 建立球形和锥形物体 本教程中,我们新建2个model class,SphereModelClass以及CylinderModelClass,分别用来表示球形和锥形物体. 程序执行后的界面如下: 线框模式界面如下: 从线框模式可以看出,球形是由三个因素决定:半径.经度线.纬度线.        在SphereModelClass.cpp中,我们看到,初始化顶点缓冲和索引缓冲的函数为:InitializeBuffers(ID3D11Device* device,…
原文:Directx11教程(19) 画一个简单的地形       通常我们在xz平面定义一个二维的网格,然后y的值根据一定的函数计算得到,比如正弦.余弦函数的组合等等,可以得到一个看似不错的地形或者水面的效果. 在本教程中我们修改ModelClass.h和ModelClass.cpp,得到一个近似的地形.         在本章代码中,我们定义300*300=90000个顶点,共(300-1)(300-1)*2个三角形,每个网格的大小都为1.     我们得到y值的函数为: float Mod…
原文:Directx11教程(11) 增加一个debug宏       现在我们在common.h中增加一个debug的宏,在每个d3d11函数后调用,如果d3d函数出错,它能够给出程序中错误的代码行数. common.h代码如下: #pragma once #include <d3d11.h> #include <d3dx10math.h> #if defined(DEBUG) || defined(_DEBUG) #ifndef D3D_DEBUG_INFO #define D…
原文:Directx11教程(9) 增加一个TimerClass类      在上篇教程代码的基础上,我们增加一个TimerClass类,这个类的功能很简单,就是可以计算相邻2帧的时间差.利用这个时间差值,可以实现平滑的动画,使得动画不会因为不同机器fps不同,从而动画效果变快或者变慢.     我们主要是利用QueryPerformanceCounter函数来查询定时器的计数值.     如果硬件里有定时器,它会启动这个定时器,之后会不断获取定时器的值,这样的定时器精度,就跟硬件时钟的晶振一样…
原文:Directx11教程(7) 画一个颜色立方体       前面教程我们通过D3D11画了一个三角形,本章我们将画一个颜色立方体,它的立体感更强.主要的变动是ModelClass类,在ModelClass中定义一个立方体需要的顶点信息,然后创建顶点缓冲和索引缓冲.      在ModelClass.h中,我们定义一些宏来表示颜色,以便后面给顶点颜色属性赋值时用. ModelClass.h代码如下: #pragma once #include <d3d11.h> #include <…
原文:Directx11教程(6) 画一个简单的三角形(2)      在上篇教程中,我们实现了在D3D11中画一个简单的三角形,但是,当我们改变窗口大小时候,三角形形状却随着窗口高宽比例改变而改变,如下图所示:           这是因为我们改变了窗口大小,但后缓冲大小在程序初始化时候,已经被指定,不随着窗口改变而改变,这样在视口映射下,我们所渲染的三角形就改变了形状. 下面我们将对程序进行一些小的改动,从而实现改变窗口大小,而渲染的图形形状不变.     首先是SystemClass.cp…
这是微软官方SignalR 2.0教程Getting Started with Entity Framework 6 Code First using MVC 5 系列的翻译,这里是第一篇:建立一个EF数据模型 原文:Creating an Entity Framework Data Model 译文版权所有,谢绝全文转载——但你可以在你的网站上添加到该教程的链接. Contoso大学的Web应用程序 你在本教程中将建立一个简单的大学网站. 用户可以查看和更新学生信息,当然也包括教师的.下列图表…
英文渣水平,大伙凑合着看吧…… 这是微软官方教程Getting Started with Entity Framework 6 Code First using MVC 5 系列的翻译,这里是第一篇:建立一个EF数据模型 原文:Creating an Entity Framework Data Model 译文版权所有,谢绝全文转载——但你可以在你的网站上添加到该教程的链接. Contoso大学的Web应用程序 你在本教程中将建立一个简单的大学网站. 用户可以查看和更新学生信息,当然也包括教师的…
一.引言 最近SmartSql被正式引入到了NCC,借着这个契机写一个使用教程系列 二.SmartSql简介[摘自官方文档] 1. SmartSql是什么? SmartSql = MyBatis + Cache(Memory | Redis) + R/W Splitting +Dynamic Repository + Diagnostics ...... 2. SmartSql的特性 简洁.高效.高性能.扩展性.监控.渐进式开发! 3. 她是如何工作的? SmartSql 借鉴了 MyBatis…
原文:Directx11教程(20) 一个简单的水面 nnd,以前发的这篇教程怎么没有了?是我自己误删除了,还是被系统删除了? 找不到存稿了,没有心情再写一遍了.      简单说一下,本篇教程就是实现一个水面的动画,主要是利用动态顶点缓冲,在每一帧都改变顶点的值,从而实现水面的动画.主要参考的是<introduction to 3D game programming with d3d10>这本书,但D3D10和D3D11的动态缓冲实现有所改变.具体算法就不再说了,大家可以参考: Mathem…
原文:Directx11教程(8) 一个新的camera类      本章我们将替换掉CameraClass类,实现一个稍微靠谱点的摄像机类.并通过Q,W,E,A,S,D,Z,X,C等按键实现摄像机的控制.      该类的主要功能就是根据指定的摄像机位置,up方向以及lookat方向,得到最终的视图矩阵,所谓视图矩阵就是把世界坐标系的顶点位置转化到视点(或者说摄像机)空间的矩阵.该类可以实现两种模式的摄像机操作,一类是AIRCRAFT摄像机,允许摄像机在空间自由运动,具有6个自由度.另一种是L…
原文:Directx11教程(4) 一个最基本D3D应用程序(2) 接着上篇教程的代码,本篇加入基本的D3D代码,实现一个完整的D3D11程序框架. 我们增加一个新类D3DClass, 用来处理3D渲染功能.增加该类后,程序的框架如下图:     GraphicsClass.h代码改变如下, 主要是增加了一个D3DClass类成员变量,在Render函数中,将会调用D3DClass的相应Render函数,比如BeginScene.EndScene,BeginScene主要是清除framebuff…
原文:Directx11教程(3) 一个最基本D3D应用程序(1)       在前一篇教程程序代码的基础上,这次我们将增加2个类: InputClass,键盘处理的代码将放在这个类里面,GraphicsClass类,D3D渲染的代码放在这个类里,这两个类都是SystemClass类的成员变量,SystemClass类中会调用这2个类实例的初始化.渲染以及shutdown函数.    增加这个两个类后,应用的程序的框架如下:     System Class类有点小变动,增加了两个成员变量m_I…
英文原文:Build a Website Crawler based upon Scrapy 标签: Scrapy Python 209人收藏此文章, 我要收藏renwofei423 推荐于 11个月前 (共 9 段, 翻译完成于 12-30) (14评)  参与翻译(3人): LeoXu, BoydWang, Garfielt 仅中文 | 中英文对照 | 仅英文 | 打印此文章 Scrapy是一个用于爬行网站以及在数据挖掘.信息处理和历史档案等大量应用范围内抽取结构化数据的应用程序框架,广泛用…
翻译自:http://blog.mydream.com.hk/howto/build-up-a-ipad-plarail-patrol-with-arduino-osc 简单介绍 这个教程告诉你怎样建立一个iPad控制的铁路王国. 假设你还不知道用Arduino进行工作,请阅读我的Arduino OSC step by step howto帖子. http://v.youku.com/v_show/id_XODEwMTk4ODA4.html 1. 硬件设置 展示出怎样连接到一起 网络设置 把伺服…
  机器学习 101 Mahout 简介 建立一个推荐引擎 使用 Mahout 实现集群 使用 Mahout 实现内容分类 结束语 下载资源 相关主题   在信息时代,公司和个人的成功越来越依赖于迅速有效地将大量数据转化为可操作的信息.无论是每天处理数以千计的个人电子邮件消息,还是从海量博客文章中推测用户的意图,都需要使用一些工具来组织和增强数据. 这其中就蕴含着 机器学习领域以及本文章所介绍项目的前景:Apache Mahout(见 参考资料). 机器学习是人工智能的一个分支,它涉及通过一些技…
原文:Directx11教程(66) D3D11屏幕文本输出(1)      在D3D10中,通过ID3DX10Font接口对象,我们可以方便的在屏幕上输出文字信息,一个DrawText函数就能解决所有问题,但在D3D11中个,这个变得超级麻烦,因为微软移除了Font接口,要在屏幕上输出文本,用户需要做很多事情. 通常我们可以用以下的方法来输出文本信息: (1)用纹理贴图的方法,把所有的字体存储在一张纹理上,再做一个字体查询表,对应纹理的相应位置,可以用2D渲染的方式,把文本染出来,但这种方法不…
原文:Directx11教程(60) tessellation学习(2)        本教程中,我们开始tessellation编程,共实现了2个程序,第一个tessellation程序,是对一个三角形进行细分操作,第二个程序是对一个四边形进行细分操作,两个程序coding差不多,我们先看第一个程序.        程序代码是在myTutorialD3D11_53的基础上改出来的,首先就是修改ModelClass,用来画一个三角形.代码主要的改动是Render函数中 // 设置体元语义,渲染三…
原文:Directx11教程(57) 环境映射       建好skydome后,如果我们想让其中的某个物体,比如那个球体来映射出周围环境的蓝天白云(不包括自己附近的物体),该怎么做呢?此时可以把这个球体当成一面镜子,把我们视点看这个物体上某个顶点p时的反射向量当作cube map查询向量v,得到纹理texel,然后p点的颜色可以用blend的方式,混合当前颜色和采样的纹理texel,就可以实现我们想要的效果.      我们新建一个LightTexCubeShaderClass来渲染这个球体,…
原文:Directx11教程36 纹理映射(6)    本章主要是整理代码,做以下两件事情: 1.把世界坐标矩阵的计算,放在GraphicsClass的渲染函数中,之前放在D3DClass中,而且只是返回一个单位矩阵,没任何作用.如果要使其起作用,就要对每个model类都单独设置,很麻烦,比如我要画两个颜色立方体,岂不是要建立两个model类,而只是世界坐标矩阵不同.     放在Render函数中后,我们主要通过一些D3D的矩阵变化函数来计算世界坐标系.比如:     //执行平移操作,得到最…
原文:Directx11 教程(2) 基本的windows应用程序框架(2)      在本教程中,我们把前面一个教程的代码,进行封装.把初始化函数,Run函数,窗口回调函数,ShutdownWindows函数等封装到一个System class中.     首先我们要在前面建立的solution,myTutorialD3D11中,鼠标右键点击,选择New Project,   创建一个名为myTutorialD3D11_1的空工程,在工程中增加main.cpp文件. main.cpp的代码如下…
原文:Directx11 教程(1) 基本的windows应用程序框架(1)        在vs2010中,建立一个新的win32工程,名字是: myTutorialD3D11, 注意:同时勾选Create directory for solution,我们同时建立一个solution,后面教程的所有的工程文件,我们都建立在这个solution中.   勾选 Emtpy project 增加source files->add new item->main.cpp   创建一个windows应…
在线演示 搜索框大概是web开发中最常用的UI元素之一,我想基本没有必要去介绍如何使用它.无论是网站还是web应用,都会为了增强用户体验而添加它,那么你是不是也想过设计一个别致的搜索框? 在今天的文章中,大家将会学到如何使用伪元素来创建一个超酷的CSS3搜索框.当然在开始介绍前你也可以下载源代码或者查看在线演示. HTML举例: 正如接下来你所看到的,标记很少,并且很容易理解: <form class=“cf form-wrapper”> <input type=“text” place…
第一个Django项目将是一个完整的博客网站.它和我们博客园使用的博客别无二致,一样有分类.标签.归档.查询等功能.如果你对Django感兴趣的话,这是一个绝好的机会.该教程将和你一起,从零开始,搭建一个属于你自己的Django博客站点. 事不宜迟,让我赶快开始吧! 创建你的第一个Django项目 Django提供了一个命令,可以让你轻松地创建初始Django项目文件结构.从你的终端运行以下命令: django-admin startproject mysite 这将会创建一个名为mysite的…
如何建立一个"绑定友好的"usercontrol--wpf 这几天在打算将以前用winform写的工具程序重构到wpf,顺便学习理解看过的wpf的知识. 因为程序设计到一个Excel文件的读取和操作,比较耗时,所以打算制作一个缓冲动画.该动画应该分为两个部分,一个部分是"一排一次排列的方块组成的渐变动画",一部分是一个Label类的控件,用来显示后台操作Excel时候的进度. 先放上渐变动画的Xaml,在usercontrol里面加上以下代码就行了.这个不是今天记录…
当你的APP需要一些新功能时,自定义UI控件会十分有用,尤其是这些自定义控件可以在其他APP里面很好的重用.Colin Eberhart写过一篇很棒的介绍自定义UI控件的教程.这个教程涉及的是一个继承自UISlider类的自定义控件的生成:该控件的功能是给定一个(滑动)范围供(用户滑动)选择,并返回一个(与滑动位置相对应的)固定值. 本篇基于iOS 7的自定义UI教程在Colin Eberhart那篇的基础上更深入一步:受调音台旋钮的启发,这里介绍如何制作一个功能类似UISlider的圆形旋转控…
建立一个类似于天眼的Android应用程序:第4部分 - 持久收集联系人,通话记录和短信(SMS) 电话黑客android恶意软件编程黑客入侵linux 随着我们继续我们的系列,AMUNET应用程序变得复杂,需要了解新的功能和结构.我们将继续前进.如前面教程中所述,该应用程序并不完全存在,因为我在分享之前构建了它们,如果在教程出来之前时间很长的话请原谅我.我需要确保一切顺利. 以前的教程 以下是截止到目前为止所涵盖的教程. 1.Amunet简介 2.获取已安装的应用 3.将信息发送到Web服务器…