C#代码创建3D模型
Demo 1:创建三角形
示例代码
构建一个只包含单个三角形及纹理坐标的网格
using UnityEngine;
using System.Collections; public class MeshTest : MonoBehaviour
{
void Start()
{
MeshFilter mf = GetComponent<MeshFilter>();
Mesh mesh = new Mesh();
mf.mesh = mesh; mesh.vertices = new Vector3[] { new Vector3(, , ), new Vector3(, , ), new Vector3(, , ) };
mesh.uv = new Vector2[] { new Vector2(, ), new Vector2(, ), new Vector2(, ) };
mesh.triangles = new int[] { , , };
}
}
创建出三角形
可以看到只有单个三角形
顶点信息
从下图可以看出,共有1个三角形,3个顶点
Demo2:二个三角形
示例代码
构建两个三角形及纹理坐标的网格
using UnityEngine;
using System.Collections; public class MyMesh : MonoBehaviour
{
void Start()
{
MeshFilter mf = GetComponent<MeshFilter>();
Mesh mesh = new Mesh();
mf.mesh = mesh;
//顶点[决定绘制出来图片的scale]
mesh.vertices = new Vector3[] { new Vector3(, , ), new Vector3(, , ), new Vector3(, , ), new Vector3(, , ) };
//三角形顶点索引的顺序[3的倍数]
mesh.triangles = new int[] { , , , , , };
//法线
mesh.normals = new Vector3[] { new Vector3(, , -), new Vector3(, , -), new Vector3(, , -), new Vector3(, , -), };
//uv纹理坐标
mesh.uv = new Vector2[] { new Vector2(, ), new Vector2(, ), new Vector2(, ), new Vector2(, ) };
}
}
三角形+三角形 = 四边形
顶点信息
从下图可以看出,共有2个三角形,4个顶点
改变顶点信息
设置的三角形顶点顺序不同,绘制出来的效果也不相同 (mesh.triangles = new int[6] { 0, 2, 1, 0, 3, 1 };)
顶点 纹理 图解
实现步骤
1、创建一个空的GameObject,绑定Mesh Filter及Mesh Renderer组件
2、创建一个Material,拖一张图片进去,修改Shader为透明Shader
3、把2创建的Material赋给1创建的GameObject的Mesh Renderer的Materiials
4、这个时候默认在场景中是看不到这个GameObject渲染的
5、创建脚本MeshTest.cs 代码如Demo1,绑定在GameObject上,运行查看效果
6、创建脚本MyMesh.cs 代码如Demo2,绑定在GameObject上,运行查看效果
其它方法
创建一个Quad,不需要运行在Scene场景就可以看到
文献资料
其它方法的资料
Unity3D研究院之与根据动态的两个轨迹点绘制面详解(二十)http://www.xuanyusong.com/archives/780
<Unity3D>Unity3D中MeshRenderer的使用 http://blog.csdn.net/zuoyamin/article/details/9287507
[Unity3D学习]Mesh创建三角形、长方形 http://blog.gamerisker.com/archives/494.html
三角网格(Triangle Mesh) http://lib.yoekey.com/?p=120
【Unity C#编程】制作星星(一)http://unity3d.9tech.cn/news/2014/0324/40085.html
C#代码创建3D模型的更多相关文章
- DNA分子结构3D模型
生物信息资源更新越来越快,使用可视化的方法来分析DNA序列已成为生物信息学的一个研究热点,用图形表示DNA序列的方法也越来越成熟.2011年,著名杂志<Science>发表一篇引起轰动的文 ...
- 3d模型一般怎么导入到到Threejs中使用
这是我之前做的一个demo,导入的3d模型文件是obj格式的,需要使用OBJLoader和MTLLoader, mtl文件用于描述多边形可视面貌的材质如果你可以导出obj.mtl文件的话,那么就可以使 ...
- 使用three.js创建3D机房模型-分享一
序:前段时间公司一次研讨会上,一市场部同事展现了同行业其他公司的3D机房,我司领导觉得这个可以研究研究,为了节约成本,我们在网上大量检索,最后找到一位前辈的博文[TWaver的技术博客],在那篇博文的 ...
- 【Unity】3.0 第3章 创建和导入3D模型
分类:Unity.C#.VS2015 创建日期:2016-04-02 一.简介 利用Unity内置的基本模型和工具,不需要借助任何其他的三维建模软件,就可以直接创建出各种3D模型,这是这一章我们首先学 ...
- Chem 3D中怎么创建立体模型
ChemDraw作为一款很受大家欢迎的化学绘图软件,其在绘制平面化学方面的功能已经非常的强大了,其实它也可以绘制3D图形.Chem 3D就是绘制3D图形的重要组件.而且为了满足不同的用户绘图的需求,可 ...
- 工控图表控件ProEssentials创建3D柱状图示例代码
使用ProEssentials可以创建3D柱状图,柱状图的形式包括线框.实体和阴影. 类似于Graph control,3D柱状图只需要YData. Subsets定义沿z轴有多少行,Points定义 ...
- ANDROID嵌入式应用Unity3D视图(画廊3D模型)
转载请注明来自大型玉米的博客文章(http://blog.csdn.net/a396901990),谢谢支持! 效果展示: watermark/2/text/aHR0cDovL2Jsb2cuY3N ...
- 利用Flare3D和Stage3D创建3D
Flare3D 是一款功能强大的引擎,它使得 Flash 中的 3D 内容管理变得更为简便. 它的设计宗旨是提供一个完美的开发工作流程,以便你能够获得事半功倍的效果. 本教程侧重讨论在 Flash 中 ...
- three.js实现3D模型展示
由于项目需要展示3d模型,所以对three做了点研究,分享出来 希望能帮到大家 先看看效果: three.js整体来说 不是很难 只要你静下心来研究研究 很快就会上手的 首先我们在页面上需要创建一个能 ...
随机推荐
- 常用Keytool 命令
常用Keytool 命令Keytool 是一个JAVA环境下的安全钥匙与证书的管理工具.它管理一个存储了私有钥匙和验证相应公共钥匙的与它们相关联的X.509 证书链的keystore(相当一个数据库, ...
- C#源码500份
C Sharp 短信发送平台源代码.rar http://1000eb.com/5c6vASP.NET+AJAX基础示例 视频教程 http://1000eb.com/89jcC# Winform ...
- UDF2
问题 根据给定的gps点point(x,y)和北京的shape数据,关联出 AOI ID IO 输入 gps点表 create table gps ( x double, //经度 y double ...
- HBase体系结构剖析
本文出自:http://wuyudong.com/archives/154 在上篇文章<HBase简介>中,已经提到过,HBase中的Table中的所有行都按照row key的字典序排列, ...
- IOS 杂笔- 6(KVC-KVO)
kvc: 键值编码的基本概念 1:键值编码是一个用于间接访问对象属性的机制,使用该机制不需要调用存取方法和变量实例就可以访问对象属性. 2:键值编码方法在Objective-C非正式协(类别)NSKe ...
- 【原】log4cplus使用说明
网上关于开源日志工具log4cplus的说明有很多,但大多略显复杂,本文主要从实用的角度,介绍一种最简单而且又实用的方法.本文的方法已经足够满足实际工程中的使用需求,而且不需要很复杂的流程,可以实现. ...
- Xcode找Library位置
- 百度地图开发的学习(一)——配置环境&基础地图
由于项目需求缘故,最近在学习Android地图的开发,所以就记录一下学习过程.最近都会陆续更新啦.目前使用百度地图API的挺多的,所以就先以它为基础学习一些地图的调用. 一.AK的申请 与web开发不 ...
- MySql下载安装(Mac平台) 终端启动 XMAPP启动
1,下载 2,点击MySQL Community Server之后,然后看到需要注册登录的节目,我们就点击最下面just start my download直接下载.懒的注册或者登陆: 3.下载后,& ...
- XCode升级到7后,规范注释生成器VVDocumenter插件没有用了,怎么办?
Xcode更新到7之后,发现很多插件包括规范注释生成器VVDocumenter的插件都没法用了,找遍百度都没有找到成功解决这个问题的方法,然后我突发奇想,把注释也弄进代码模板里.虽然没有插件那样灵活: ...