Textures
LPDIRECT3DVERTEXBUFFER9 g_VertexBuffer=NULL; //顶点缓存
LPDIRECT3DTEXTURE9 g_Texture=NULL;//纹理对象
bool InitializeObjects()
{
//将含有纹理坐标的数据填充到该顶点结构数组中
stD3DVertex objData[]=
{
{-0.3f, -0.4f, 0, D3DCOLOR_XRGB(255,255,255), 0, 1},
{0.3f, -0.4f, 0, D3DCOLOR_XRGB(255,255,255), 1, 1},
{0.3f, 0.4f, 0, D3DCOLOR_XRGB(255,255,255), 1, 0},
{0.3f, 0.4f, 0, D3DCOLOR_XRGB(255,255,255), 1, 0},
{-0.3f, 0.4f, 0, D3DCOLOR_XRGB(255,255,255), 0, 0},
{-0.3f, -0.4f, 0, D3DCOLOR_XRGB(255,255,255), 0, 1}
};
//创建顶点缓存
if(FAILED(g_D3DDevice->CreateVertexBuffer(sizeof(objData),0,
D3DFVF_VERTEX,D3DPOOL_DEFAULT,
&g_VertexBuffer,NULL)))
return false;
void *ptr;
//锁定顶点缓存,以进行读写操作。ptr指向该顶点缓存内存区域
if(FAILED(g_VertexBuffer->Lock(0,sizeof(objData),
(void**)&ptr,0))) return false;
//将objData内存区域的数据复制到ptr所指向的内存区域中
memcpy(ptr,objData,sizeof(objData));
g_VertexBuffer->Unlock();
//加载纹理图像至该设备对象
if(D3DXCreateTextureFromFile(g_D3DDevice,"ugp.tga",
&g_Texture)!=D3D_OK)
return false;
// 设置纹理采样模式(纹理过滤器)
g_D3DDevice->SetSamplerState(0, D3DSAMP_MINFILTER,
D3DTEXF_LINEAR); // 线性过滤
g_D3DDevice->SetSamplerState(0, D3DSAMP_MAGFILTER,
D3DTEXF_LINEAR); // 线性过滤
g_D3DDevice->SetRenderState(D3DRS_LIGHTING, FALSE); // 关闭光照
g_D3DDevice->SetRenderState(D3DRS_CULLMODE, D3DCULL_NONE); // 不剔除任何面
// Set the projection matrix.
D3DXMatrixPerspectiveFovLH(&g_projection, 45.0f,
WINDOW_WIDTH/WINDOW_HEIGHT, 0.1f, 1000.0f);
g_D3DDevice->SetTransform(D3DTS_PROJECTION, &g_projection);
// Set default rendering states.
g_D3DDevice->SetRenderState(D3DRS_LIGHTING, FALSE);
// Define camera information.
D3DXVECTOR3 cameraPos(0.0f, 0.0f, -1.0f);
D3DXVECTOR3 lookAtPos(0.0f, 0.0f, 0.0f);
D3DXVECTOR3 upDir(0.0f, 1.0f, 0.0f);
// Build view matrix.创建视图矩阵
D3DXMatrixLookAtLH(&g_ViewMatrix, &cameraPos,
&lookAtPos, &upDir);
return true;
}
void RenderScene()
{
// Clear the back buffer.
g_D3DDevice->Clear(0, NULL, D3DCLEAR_TARGET,
D3DCOLOR_XRGB(0,0,0), 1.0f, 0);
// Begin the scene. Start rendering.启动绘制
g_D3DDevice->BeginScene();
// Apply the view (camera).
g_D3DDevice->SetTransform(D3DTS_VIEW, &g_ViewMatrix);
// 设置纹理
g_D3DDevice->SetTexture(0, g_Texture);
// 设置所要使用的顶点缓存与数据流的链接
g_D3DDevice->SetStreamSource(0, g_VertexBuffer,
0, sizeof(stD3DVertex));
// 设置灵活顶点格式
g_D3DDevice->SetFVF(D3DFVF_VERTEX);
// 绘制该场景
g_D3DDevice->DrawPrimitive(D3DPT_TRIANGLELIST, 0, 2);
// End the scene. Stop rendering.
g_D3DDevice->EndScene();
// Display the scene.
g_D3DDevice->Present(NULL, NULL, NULL, NULL);
}
Textures的更多相关文章
- [我给Unity官方视频教程做中文字幕]beginner Graphics – Lessons系列之纹理Textures
[我给Unity官方视频教程做中文字幕]beginner Graphics – Lessons系列之纹理Textures 本篇分享一下第6个已完工的视频,即<beginner Graphics ...
- Modify textures at runtime
动态修改Texture Modify textures at runtime?http://answers.unity3d.com/questions/7906/modify-textures-at- ...
- Shader Model 3.0:Using Vertex Textures SM3:使用顶点纹理 (NVIDIA spec, 6800支持使用D3DFMT_R32F and D3DFMT_A32B32G32R32F的纹理格式实现Vertex Texture。)
翻译者 周波 zhoubo22@hotmail.com 版权所有 Philipp Gerasimov Randima (Randy) Fernando Simon Green NVIDIA Corpo ...
- 【Unity Shaders】Using Textures for Effects —— 实现Photoshop的色阶效果
本系列主要参考<Unity Shaders and Effects Cookbook>一书(感谢原书作者),同时会加上一点个人理解或拓展. 这里是本书所有的插图.这里是本书所需的代码和资源 ...
- 【Unity Shaders】Using Textures for Effects——打包和混合textures
本系列主要参考<Unity Shaders and Effects Cookbook>一书(感谢原书作者),同时会加上一点个人理解或拓展. 这里是本书所有的插图.这里是本书所需的代码和资源 ...
- 【Unity Shaders】Using Textures for Effects——让sprite sheets动起来
本系列主要参考<Unity Shaders and Effects Cookbook>一书(感谢原书作者),同时会加上一点个人理解或拓展. 这里是本书所有的插图.这里是本书所需的代码和资源 ...
- 【Unity Shaders】Using Textures for Effects介绍
本系列主要参考<Unity Shaders and Effects Cookbook>一书(感谢原书作者),同时会加上一点个人理解或拓展. 这里是本书所有的插图.这里是本书所需的代码和资源 ...
- Creating Procedural Textures
[Creating Procedural Textures] 由程序主生贴图,然后设置给Material.首先定义需要的数据: 在Start方法中完成初始化,注意设置的是_MainTex. 实现Gen ...
- METHODS OF AND APPARATUS FOR USING TEXTURES IN GRAPHICS PROCESSING SYSTEMS
BACKGROUND The technology described herein relates to methods of and apparatus for using and handlin ...
- ETC1/DXT1 compressed textures are not supported when publishing to iPhone
Build application in Unity 2017.20f3 用Unity2017/2018编译iPhone版本出现以下错误: ETC1(or DXT1) compressed textu ...
随机推荐
- UIImagePickerController之Block回调
方法使用:引入头文件 #import "UIImagePickerController+Block.h" 我这拖出来的两个属性 @property (weak, nonatomic ...
- [转]AngularJS: 使用Scope时的6个陷阱
在使用AngularJS中的scope时,会有6个主要陷阱.如果你理解AngularJS背后的概念的话,这6个点其实非常的简单.但是在具体讲述这6个陷阱之前我们先要讲两个其它的概念. 概念1: 双向数 ...
- 009--VS2013 C++ 显示位图部分透明化
其实这个更简单,只是把上一编文章的半透明化的代码去掉就可以啦 还是原来那张图片: //全局变量HBITMAP bg, girl;HDC mdc;//起始坐标const int xstart = 50; ...
- Shade勒索病毒 中敲诈病毒解密 如 issbakev9_Data.MDF.id-A1E.f_tactics@aol.com.xtbl 解决方法
[客户名称]:福建福州市某烘焙连锁企业 [软件名称]:思迅烘焙之星V9总部 [数据库版本]:MS SQL server 2000 [数据库大小]:4.94GB [问题描述]:由于客户服务器安全层薄弱 ...
- IT安全的本质
(1)信任:服务端信任客户端的请求参数. (2)可控:客户端的请求参数可以被控制,任意修改. 服务端信任+客户端可控 =不安全. 服务端信任+客户端不可控=安全. 服务端不信任+客户端可控=安全. 服 ...
- 基于BaseAdapter的GridView设置ImageView大小
基于BaseAdapter的GridView设置ImageView大小 网上找了好多,都是基于SimpleAdapter的,本身在Item.xml中就对ImageView设置了id,而基于BaseAd ...
- 阴影 box-shadow(一)
阴影 box-shadow(一) box-shadow是向盒子添加阴影.支持添加一个或者多个. 很简单的一段代码,就实现了投影效果,酷毙了.我们来看下语法: box-shadow: X轴偏移量 Y轴偏 ...
- Node.js 学习(三) NPM 使用介绍
NPM是随同NodeJS一起安装的包管理工具,能解决NodeJS代码部署上的很多问题,常见的使用场景有以下几种: 允许用户从NPM服务器下载别人编写的第三方包到本地使用. 允许用户从NPM服务器下载并 ...
- 【LRU Cache】cpp
题目: Design and implement a data structure for Least Recently Used (LRU) cache. It should support the ...
- Netsharp快速入门(之3) 基础档案(之B 实体建模 新建项目)
作者:秋时 杨昶 时间:2014-02-15 转载须说明出处 3.3 创建业务模型 3.3.1 新建项目 1.打开业务模型 2.打开业务模型后,在工具栏上选择操作-新增项目分类,标识这 ...