xna 渲染3d图片
我们在做一个3d显示的时候为了突出模型的某些部位以及更好的区别某些模块我们需要渲染各种不同的颜色来体现,
下面代码演示:
public void loade()
{ spriteBatch = new SpriteBatch(GraphicsDevice);
myModel = Content.Load<Model>("Models\\" + mainform.filename); //素材管道载入3D模型//download the 3d model
TextureCoordinate = Content.Load<Texture2D>("Models\\test");
//aaa=new Texture2D(,100,100) aspectRatio = (float)graphics.GraphicsDevice.Viewport.Width / (float)graphics.GraphicsDevice.Viewport.Height; }
为了不发生异常我们还需在lodeconten加一句代码,就可以多次加载了
protected override void LoadContent()
{ //spriteBatch = new SpriteBatch(GraphicsDevice);
//myModel = Content.Load<Model>("Models\\"+mainform.filename); //素材管道载入3D模型//download the 3d model
//aspectRatio = (float)graphics.GraphicsDevice.Viewport.Width /(float)graphics.GraphicsDevice.Viewport.Height;
GraphicsDevice.SamplerStates[0] = SamplerState.LinearClamp; loade();
// TODO: use this.Content to load your game content here
}
protected override void Draw(GameTime gameTime)
{
GraphicsDevice.Clear(Color.Black);
Matrix[] transforms = new Matrix[myModel.Bones.Count];
myModel.CopyAbsoluteBoneTransformsTo(transforms); // 绘制模型
foreach (ModelMesh mesh in myModel.Meshes) //遍历模型mesh// for() all the mesh
{
//BasicEffect类可以简单的通过设置属性,包含光照、纹理等等就可以在“五分钟”内实现对一个物体的呈现。
string aaa = mesh.Name;
if (aaa.ToString().IndexOf("矩形") > 0)
{
foreach (BasicEffect effect in mesh.Effects)
{ effect.EnableDefaultLighting();
effect.TextureEnabled = true;//纹理加载
effect.Texture =TextureCoordinate;
//光照 //light
effect.SpecularColor = new Vector3(1, 1, 1);
effect.SpecularPower = 24;
effect.World = transforms[mesh.ParentBone.Index] * Matrix.CreateRotationY(Program.modelRotationY) * Matrix.CreateRotationX(Program.modelRotationX) * Matrix.CreateTranslation(modelPosition); //使用World矩阵来改变模型在世界坐标系中的位置//use the World Matrix change the world coordinate
effect.View = Matrix.CreateLookAt(cameraPosition, Vector3.Zero, Vector3.Up);
effect.Projection = Matrix.CreatePerspectiveFieldOfView(MathHelper.ToRadians(60.0f), aspectRatio, 1.0f, 10000.0f);
//Color[] colors = new Color[3]; //for (int i = 0; i < 3; i++)
//{
// colors.SetValue(new Color(0, 1, 0), i);
//} } mesh.Draw();
}
} //sprites.Begin();
//sprites.Draw(backgroundTexture, Vector2.Zero, Color.White);
//sprites.End();
base.Draw(gameTime);
}
好了下面我就可以为是矩形的模块显示为蓝色了
效果如下:
xna 渲染3d图片的更多相关文章
- XNA 中3D模型的显示
XNA 中3D模型的显示: ModelMeshPart[] meshParts; Model start_model; Matrix[] dq_model_transforms; Matrix vie ...
- 网页特效:用CSS3制作3D图片立方体旋转特效
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title&g ...
- 使用 CSS3 动画实现的 3D 图片过渡特效
这是一个基于 CSS3 动画实现的图片过渡效果,共有 Flip.Rotation.Multi-flip.Cube.Unfold 等6种效果,它们将证明 CSS3 Transform 和 Transit ...
- 精致3D图片切换效果,最适合企业产品展示
这是一个精致的立体图片切换效果,特别适合企业产品展示,可立即用于实际项目中.支持导航和自动播放功能, 基于 CSS3 实现,推荐使用最新的 Chrome,Firefox 和 Safari 浏览器浏览效 ...
- 使用 CSS3 实现 3D 图片滑块效果【附源码下载】
使用 CSS3 的3D变换特性,我们可以通过让元素在三维空间中变换来实现一些新奇的效果. 这篇文章分享的这款 jQuery 立体图片滑块插件,利用了 3D transforms(变换)属性来实现多种不 ...
- Seen.js – 使用 SVG 或者 Canvas 渲染 3D 场景
Seen.js 渲染3D场景为 SVG 或者 HTML5 画布.Seen.js 包含对于 SVG 和 HTML5 Canvas 元素的图形功能的最简单的抽象.所有这个库的其它组件都是不用关心将要渲染的 ...
- jquery.roundabout.js实现3D图片层叠旋转木马切换
最近项目中需要实现3D图片层叠旋转木马切换的效果,于是用到了jquery.roundabout.js. 兼容性如图: html结构代码: <div id="featured-area& ...
- 制作3D图片立方体旋转特效
<!DOCTYPE html><html><head><meta charset="utf-8" /><title>CS ...
- 一款基于css3的3D图片翻页切换特效
今天给大家分享一款基于css3的3D图片翻页切换特效.单击图片下方的滑块会切换上方的图片.动起你的鼠标试试吧,效果图如下: 在线预览 源码下载 实现的代码. html代码: <div id= ...
- Android 高级UI设计笔记14:Gallery(画廊控件)之 3D图片浏览
1. 利用Gallery组件实现 3D图片浏览器的功能,如下: 2. 下面是详细的实现过程如下: (1)这里我是测试性代码,我的图片是自己添加到res/drawable/目录下的,如下: 但是开发中不 ...
随机推荐
- Jenkins插件:Git
Jenkins插件:Git Jenkins,作为一款备受欢迎的持续集成和持续交付工具,在软件开发领域发挥着举足轻重的作用.它不仅能够与Git无缝集成,还能实现代码的自动化拉取.构建与部署,极大地提升了 ...
- spring的事务管理有几种方式实现
一.事务的4个特性: 原子性:一个事务中所有对数据库的操作是一个不可分割的操作序列,要么全做,要么全部做. 一致性:数据不会因为事务的执行而遭到破坏. 隔离性:一个事务的执行,不受其他事务 ...
- nginx 简单实践:正向代理、反向代理【nginx 实践系列之二】
〇.前言 本文为 nginx 简单实践系列文章之二,主要简单实践了两个内容:正向代理.反向代理,仅供参考. 关于 Nginx 基础,以及安装和配置详解,可以参考博主过往文章: https://www. ...
- [国家集训队] happiness 题解
发现可以做如下建图: 对于前两组输入,从 \(s\) 向所有代表学生的点连一条边,容量为其学习文科的喜悦值:从所有代表学生的点向 \(t\) 连一条边,容量为其学习理科的最大值. 对于后四组输入,建两 ...
- Qt Json序列化与反序列化
Qt Json序列化与反序列化 Qt的一个用于序列化与反序列化的库 xpack,也可用于c++. 使用方法 下载库文件 xpack 标签 - Gitee.com 按照它的默认样子放好,建议单独放一个文 ...
- Android设备基础信息获取 源码修改方式 APK开发
APK 获取设备信息 头文件 import java.io.BufferedReader; import java.io.File; import java.io.FileFilter; import ...
- XYBot:一款功能强大的微信机器人,超多插件等你来玩
想象一下,拥有一个全能的微信机器人,它能帮你查天气.找新闻,甚至陪你聊天,这一切都不再是梦!XYBot,一款基于docker和pywxdll hook注入技术的微信机器人,让你的微信生活更有趣.更便捷 ...
- windows设置定时任务
- .NET 10 首个预览版发布,跨平台开发与性能全面提升
前言 2024年2月25日,微软正式推出 .NET 10 预览版 1,标志着这一跨平台开发框架迈入新里程碑. 本次更新聚焦 JIT 编译器优化.运行时性能提升和跨平台开发体验增强,同时引入多项开发者期 ...
- FastAPI依赖注入:参数共享与逻辑复用
扫描二维码关注或者微信搜一搜:编程智域 前端至全栈交流与成长 第一章:依赖注入核心原理 1.1 依赖树构建机制 from fastapi import Depends def auth_service ...