mod制作

头像
Lv.1
分类:泰拉技术协会

如果你是很想做什么花里胡哨的刀光之类的拖尾,那么这是必须的

 

1.顶点绘制介绍

在我们开始解释顶点绘制的内容之前,我们需要从零开始了解:什么是顶点绘制。更准确的说:什么是XNA(monogame)的顶点绘制。

 

首先强烈推荐这个网址:LearnOpenGL CN (learnopengl-cn.github.io)

 

https://learnopengl-cn.github.io/

 

 

 

虽然不是XNA的顶点绘制,但计算机图形学中的许多内容也可以通用。

 

接下来,下图是GPU渲染图像的流程,其中,蓝色部分是大部分着色器语言(例如opengl)可以操作的。

 

mod制作

 

 

 

 

可惜,受限于XNA 的性能,这个着色器我们无法编写:

mod制作

 

XNA,你妈的你竟然不支持,我杀了你

 

那么,顶点着色器,就肯定是要有“点”的存在。

 

没有顶点,绘制个空气锤锤(

 

(说到这里,顺便提一嘴,SpriteBatch的实现其本质也是顶点绘制,不过只是方便你绘制封装的东西而已)

 

以及,片段着色器,也就是我们所说的像素着色器,同顶点着色器一样,是可以被我们所编写的。

 

不过接下来,我们并不会从顶点绘制的着色器开始,而是把它丢在后面去,因为我们需要先了解:“什么是顶点?怎么使用顶点绘制?”

 

2.如何使用顶点绘制

2.1.顶点与顶点定义

不得不说,这确实是一个最基础的东西,顶点绘制需要点。

 

那么接下来,我会从代码上一步步分析,顶点的定义方法,与顶点是什么。

 

首先,如果我们想定义顶点,就需要整一个东西,继承IVertexType。

 

就像下图所示:

mod制作

IVertexType是顶点数据的接口IVertexType是顶点数据的接口

 

继承了此接口,我们之后才能用这个顶点,生成顶点,调用顶点绘制。

 

但这个接口要求实现的属性,我们总得让它返回个东西。

 

于是我们建立一个静态字段,解决这个问题:

mod制作

我是不是把过程给的太详细了

我这里不会详细去讲VertexDeclaration这个东西,你只管往里面丢入需要的VertexElement(顶点元素)即可。

 

new VertexElement需要的参数:

 

第一个参数 int offset:顶点取值偏移。

 

首先顶点信息均以二进制传入到GPU之类,但我总不能扔一串00100110010之类的东西给你,所以它肯定要分。

 

我们知道,计算机的最小单位是1bit,但通常我们是用1byte(8bit)做单位,这个玩意同上,所以它的单位是byte。

 

那么GPU不知道怎么给它切割byte,所以就需要我们动手告诉GPU如何处理传入的二进制。

 

这个东西传入的值,就是分割处。0就在传入二进制开始切(相当于不切),1就是有一个1byte长度后切割,以此类推。

 

接下来,我们就是去计算大小就可以了。

 

举例,如上图所示,第一个元素从头开始,所以为0。

第二个元素受到前面一个Vector2的影响,所以需要偏移两个float大小,也就是8(byte)。

以此类推。

 

 

 

下一个:VertexElementFormat-顶点元素格式

 

它就是顶点的元素格式,让你可以使用一个顶点拥有对应的顶点元素。mod制作

它有以上格式,我们根据我们需要的顶点信息,三个元素分别选择Vector2和Color和Vector2(或者Vector3)就行了。

再下一个:VertexElementUsage-顶点元素用法

它是每个顶点元素的使用方法,可以用的如同下图所示:

我不会去讲解其它的东西,我们在tr一般是要不着的,我们目前只需要:
mod制作

Position(绘制在屏幕上的位置)

 

Color(绘制颜色,但其实还看你的shader有没有用,一般时候是会用的)

 

TextureCoordinate(图片纹理坐标,这对绘制尤为重要)

 

最后一个参数:usageIndex-顶点元素用法索引

 

它的功能是:让你指定每个语义的多个版本。

 

举例:你有两个Position需要传入,那么你就需要用usageIndex区分Position0与Position1。

mod制作

假设这是一个顶点信息拥有的元素(shader内部)

 

 

至于多个版本是什么?

 

这两个就是POSITIONT(位置)的不同版本。

mod制作

2.2.顶点的连接种类

 

XNA里面的顶点绘制连线方法如下:
mod制作

接下来,我懒得复制字了,就直接从上往下按顺序说

第一个:线的列表

 

它会将线连接起来,以两个点的形式。

 

如果你要画一个本来应该只用三个点就能画出来的折线,现在你需要定义四个点,你才可以画出折线,这就是它的不方便之处。

 

但这个玩意也是会有它的用武之地的,我们等下将下一个的区别就会知道。

 

连线数量:顶点数/2

 

 

 

第二个:线的条带

 

它会自动按顺序连接所有的顶点,十分方便。

 

但不好的地方也在此,你不能自由控制连接。

 

假如有四个点,你要画两条没有顶点不重合的线段,那么这个玩意就用不了,因为它会按照顺序连接线段,也就是:

 

1-2-3-4

 

而不是你想要的

 

1-2/3-4

 

连线数量:顶点数-1

 

 

 

第三个:(不清楚)点的列表。

 

绘制点,对,就一个点。

 

点数量=顶点数

 

第四个:三角形列表。

 

同第一个线的列表一样,不过它是通过3个点形成一个三角形,同样按顺序去连接,没什么可以讲的,不过我们绘制图形的时候都是需要使用三角形的,并且一个完整图形需要两个三角形

 

连线数量:顶点数/3

 

第五个:三角形条带。

 

这个与线的条带不大一样。

 

不过同样的地方在于,你不用重复定义顶点。

mod制作

每次会从编号为i的位置以此取三个顶点,i/i+1/i+2为一组。

 

例如第一个三角形是V1V2V3,第二个就是V2V3V4,第三个就是V3V4V5,以此类推。

 

连线数量:顶点数-2

 

2.3.顶点绘制的调用

(关于调用shader,这些东西请转入:fs49.org,或者等之后有人找时间把shader篇写了)

 

首先,调用顶点绘制,我们得找到:GraphicsDevice。

 

那么的tr的GraphicsDevice在哪里呢?

 

我们有几种办法:

 

Main.graphics.GraphicsDevice

 

Main.instance.GraphicsDevice

 

Main.spriteBatch.GraphicsDevice(不确定是不是会有什么区别,理论来说,SpriteBatch是得通过GraphicsDevice创建的,所以返回的应该也是和graphics.GraphicsDevice 与instance.GraphicsDevice同一个东西)

 

 

 

然后接下来,GraphicsDevice我们一律缩写为:gd

然后gd里面有几种绘制的方法:

mod制作

前三种需要对顶点绘制与计算机图形学有更深入的了解,下一期会讲

我们最常用:

mod制作

其中,上面那个会更麻烦一点,下面那个是我们最经常用的

我们这期也就仅仅介绍最下面那个东西,上面那个东西讲起来比较麻烦就不想讲了(bushi)

这是DrawUserPrimitives的参数(不要理另一个重载,这玩意我也不理解)mod制作

第一个参数是啥上面讲过了,你还不知道就往上看。

 

第二个参数是T(泛型,这里要求继承了IVertexType)的实例。

 

第三个是顶点的偏移,这个玩意很奇怪,最好不动(你正常是要不着的)

 

第四个是绘制的数量,绘制什么与第一个参数相关联,就按连线数量的来填。

【泰拉瑞亚mod制作技术:顶点绘制教程①(不算太专业)-哔哩哔哩】 https://b23.tv/FOYUhb7如有侵权立即删除)我这个人会听建议https://tlryjg.jiaohusheji.net/wp-content/uploads/emoticon/20221119140033.jpg

下载app分享☆收藏2+
  • 泰拉世界
    1楼

    https://tlryjg.jiaohusheji.net/wp-content/uploads/emoticon/20221118075958.jpg

    2年前
  • 摆烂の拜月教主
    2楼
    拜月Lv.11
    追风赶月莫停留,平芜尽处是春山,行人更在春山外。 战士毕业认证羽毛笔火焰羽毛笔奖券未知生物研究所毕业证魔导院毕业证射击爱好者协会毕业证作者认证小蛋糕拜月本尊大满贯勋章4周年纪念啤酒杯团结友爱荒木庄组徽阿馆小分队一年之约灯笼克总的眼镜喜糖狙击手5周年纪念啤酒杯战争之潮一年之约灯笼黄拆迁许可证葡萄勋章6周年纪念勋章许愿灯笼(玉叶嘉年)第四届建筑大师赛勋章2工作人员通行证

    mod制作
    来着钥月的可拷消息,不要随便盗用别人的成果哦

    2年前
    • 拜月 2023-11-28 15:04:49

      打字太急了,是来自

    • 四叶草 2023-11-28 22:00:41

      你不说我还真不知道

  • 山风
    3楼
    SaberLv.10
    总觉得有些心碎。。。 7N建筑学院工作人员通行证热烈玫瑰许愿灯笼(玉叶嘉年)

    https://wl.jiaohusheji.net/tlry/emoticon/2023/01/10/wgy3DgJp.jpg

    2年前
    • 拜月 2023-11-28 15:18:33

  • 被迫改名
    4楼
    归来的手残人Lv.9
    没有手,但是泰拉瑞亚 喜糖5周年纪念啤酒杯

    这文章……是你写的吗?(萌新疑问ing)

    https://wl.jiaohusheji.net/tlry/emoticon/2023/07/24/15JEVUecz.png

    2年前
    • 2023-11-30 14:37:00

      不是,b站搬运

  • 猪鲨宝宝
    5楼
    猪鲨Lv.7
    high on life 战士毕业认证喜糖羽毛笔火焰羽毛笔阿馆小分队奖券狙击手5周年纪念啤酒杯战争之潮

    欢迎发帖,但是请明显的表明出处,这里支持原创,转载也不要太频繁https://wl.jiaohusheji.net/tlry/emoticon/2023/07/30/xG33pCzv.png

    2年前
  • 玫瑰鲜奶
    6楼
    玫瑰鲜奶Lv.11
    摆烂中ノ☀ 未知生物研究所毕业证战士毕业认证魔导院毕业证射击爱好者协会毕业证小蛋糕阿馆小分队克总的眼镜羽毛笔火焰羽毛笔黑晶羽毛笔大满贯勋章奖券宝贝分享家西瓜勋章时尚水晶凉鞋鸽王勋章一年之约灯笼喜糖月饼勋章时尚大师绶带5周年纪念啤酒杯一年之约灯笼黄6周年纪念勋章

    转载标明出处嘛https://tlryjg.jiaohusheji.net/wp-content/uploads/emoticon/20221119140400.jpg

    2年前
    • 拜月 2023-11-28 16:41:50

      他标了,在最后,但是太不明显了,不认真看根本看不见

    • 玫瑰鲜奶 2023-11-28 18:29:56

      回复@拜月: 应该标明作者的

  • 芙门!!!
    7楼
    卡皮巴拉不能吃Lv.12
    厌恶世间一切不公 作者认证射击爱好者协会毕业证羽毛笔战士毕业认证魔导院毕业证未知生物研究所毕业证小蛋糕奖券宝贝分享家火焰羽毛笔大满贯勋章黑晶羽毛笔阿馆小分队超级黑晶之证拜日教的太阳石土豪勋章4周年纪念啤酒杯团结友爱荒木庄组徽拜日小组徽章魔君的礼物一年之约灯笼喜糖狙击手铁锹勋章工作人员通行证武术家勋章通鉴宝书月饼勋章小蛋糕拜日教•迷你教主限定手办5周年纪念啤酒杯一年之约灯笼黄拆迁许可证锤子勋章独眼小宝(限定发售)双子魔眼勋章葡萄勋章群星闪耀勋章6周年纪念勋章许愿灯笼(玉叶嘉年)第四届建筑大师赛勋章2工作人员通行证

    点进来之前:我能做模组了?!https://tlryjg.jiaohusheji.net/wp-content/uploads/emoticon/20221119140311.jpg

    看完之后:等我有电脑再说https://tlryjg.jiaohusheji.net/wp-content/uploads/emoticon/20221119140412.jpg

    2年前
  • 鸿竹
    8楼
    灰风Lv.9
    心胜于物 4周年纪念啤酒杯一年之约灯笼阿馆小分队喜糖作者认证奖券stx武术家勋章羽毛笔火焰羽毛笔黑晶羽毛笔超级黑晶之证克总的眼镜大满贯勋章小蛋糕月饼勋章白王之魂5周年纪念啤酒杯克总的眼镜一年之约灯笼黄6周年纪念勋章Astrea

    关注的小up的文章都能被翻到并搬过来,难崩

    https://tlryjg.jiaohusheji.net/wp-content/uploads/emoticon/20221118080150.jpg

    2年前
  • 泰拉世界
    9楼

    https://tlryjg.jiaohusheji.net/wp-content/uploads/emoticon/20221119140042.jpg

    2年前
  • 史莱姆女皇
    10楼
    谎言舞者Lv.10
    不定时电击复活 喜糖战士毕业认证射击爱好者协会毕业证阿馆小分队奖券克总的眼镜小蛋糕5周年纪念啤酒杯多多理财但是MAS吧拜日小组徽章一年之约灯笼黄6周年纪念勋章双子魔眼勋章

    啊?

    https://wl.jiaohusheji.net/tlry/emoticon/2023/09/09/12tcaLk3p.jpg

    2年前

亲爱的馆友,老酒馆已暂停评论~

您可以前往新酒馆参与讨论!(๑•̀ㅂ•́)و✧

→ 点击查看酒馆重大版本更新公告

信息x
你确定要删除回复吗?
禁止发布

首页

视频

社区

福利

我的
文章页
文章页