Articles of 贴花系统

如何在对象或角色上使用贴花/徽标/纹身纹理?

看来我误解了标准着色器的“次要纹理”选项的目的。 如果我想将临时细节映射到一个对象,那么Unity的适当方法是什么? 我指的是如下的效果: Tatoos 血液飞溅 徽标 贴花 等等… 我知道我可以使用两种材料,但是这样做效率低下,而且我可以避免使用黑客行为。 标准做法? 编辑: 根据下面的评论,我会略微阐述一下: 在我的具体情况下,我想有两个scenerios之一: 1:可以插入徽标(玩家创建)的区域,分配前uv。 2:同样地拖放徽标位置,但没有限制。 这当然意味着通过紫外线的界限。

屏幕空间贴图,将世界转换为贴花空间

我正在尝试做屏幕空间延期贴花之后,教皇Kim介绍WH40K:空间海洋(链接)固态硬盘。 如果边界框放置在世界空间原点(0,0,0),我已经到了可以渲染贴花的点。 当我移动边界体积的时刻,贴花仍然试图渲染世界空间的起源,如果你看穿“边界”的体积,可以看到它。 图片中的红色平面是供参考的边界体,圆形补丁是贴花。 显示在世界空间原点正确渲染的图片 显示来自世界空间原点的偏移量时贴图的图片被剪切 贴花如看到“通过”偏移量的边界。 我的代码与Kim的代码非常相似,只是在D3D和OpenGL之间有一些细微差别。 顶点着色器: #version 430 layout (shared) uniform PerFrameBlock { mat4 gView; mat4 gProjection; }; uniform mat4 modelMatrix; uniform vec3 decalSize; layout ( location = 0 ) in vec4 positionIN; layout ( location = 1 ) in vec4 normalIN; layout ( location = 2 ) in vec4 tangentIN; layout […]

如何使用深度缓冲区比较使用OpenGL进行贴花剪切?

基本上我已经在各种平坦的表面上绘制贴花,而且效果很好。 一旦贴花接近表面的边缘,它自然不会被剪切。 有没有办法通过比较存储深度缓冲区中的值与要写入的贴花像素的深度值(Z)来添加简单裁剪? 如果将要写入的深度值大约相同(在一个范围内),则贴花像素被绘制,否则被丢弃。 贴花不会写入深度缓冲区本身。 示例场景:

如何在Unity中互相绘制3D网格和2D UI图像?

我的问题有点牵扯,所以我要分成几部分,附上一张照片。 1)在Unity中,我希望能够用鼠标在3D世界空间网格上绘制一条线。 2)当我绘制在3D世界空间网格上时,我需要一个2D UI图像组件来表示相同的3D世界空间网格表面。 UI图像组件需要在UI上实时显示线条图更新。 3)我需要能够在2D UI图像组件上绘制一条线,并在3D世界空间网格上显示该线。 目前,我已经通过使用光线投射并在返回的raycasthit的世界坐标上绘制我的线来实现了第1部分。 这很好。 现在,我有点茫然,因为如何正确地将线的世界坐标映射到2D UI图像组件的坐标。 我知道如果我能弄清楚如何完成第二步,第三步将简单地颠倒第二步的过程。 这是一张图片,展示了我想要达到的目标:

使用VBO时,在其他纹理之上的纹理

我目前正在制作一个立方体风格的游戏。 随着维也纳组织吸取大块物资。 我想知道是否有办法在现有纹理上创建叠加纹理,而无需重新构建VBO。 这是需要显示在一个立方体的活动(想到Minecraft时,摧毁一个块和小裂缝开始蔓延)。 我相信这些被称为“贴花”,但我还没有find如何将它们用于维也纳组织。 那么如何在OpenGL VBO绘制的多维数据集上绘制贴图呢?

我如何创建一个贴花系统?

我目前的任务是在C ++ / DirectX中devise和创建一个简单的贴花系统。 有没有人知道一个伟大的教程,文章或纸张开始? (特别是关于2D纹理到3D表面投影和裁剪的部分对我来说并不明显。 我也很欣赏只是简单的提示和最佳做法。

贴花实施

我有问题find关于贴花的信息,所以也许这个问题会帮助其他人。 这个实现是针对一个前向渲染器的。 有人可以证实我是否有贴花的执行权吗? 您可以定义任何尺寸的立方体,用于定义公共空间的投影体积。 您检查与定义的立方体的三角形相交,以接收投影将影响的三角形。 你剪下这些三角形并保存。 然后使用matrix技巧来计算保存的三角形的UV坐标,这些三角形将引用您投射的纹理。 为了做到这一点,你需要在公共空间中表示立方体的高度,宽度和深度,这样左下角就是原点。 你把它放在一个matrix中作为i,j,k单位vector,为立方体设置翻译,然后反转这个matrix。 你用这个matrix乘以保存的三角形的顶点,这样你得到他们的坐标在一个0到1的大小的立方体,你用作UV坐标。 这样,你有投影到原来的三角形,你有他们的紫外线坐标(紫外线坐标是参考您投射的纹理)。 然后将保存的三角形重新放到场景上,并用投影图像覆盖投影区域。 现在我无法find答案的问题。 最后一点是对的吗? 我从来没有做软件裁剪,但似乎有足够的错误,由于有限的精度,这将是一些z战斗发生的投影纹理。 获取UV坐标的方法是否正确?