Articles of 大纲

如何呈现3D模型的暗示轮廓?

我如何创建暗示的轮廓 ? 具体而言,我有兴趣从简单的几何/图元和基元的组合运行生成这些,但也可能有网格和三维表面。

如何概述javscript和/或php中的alpha透明图层?

我只是想要一个大纲/边缘检测被选中的字符/项目/对象或做某事。 我看到了不同语言的这个问题的很多版本,但我将不胜感激可以在Web上下文中实现的一种方法。 我不知道这是更好的处理在服务器或可以在客户端完成。 我不知道如何访问任何语言的alpha透明图层。 请指教。 对不起,缺乏特异性,只是得到我想要的东西。 这将在2d的上下文中。 这幅画大纲的对象效果显示了我要去的东西。 不知道这个问题的答案是否适用于我的问题。

LibGDX图像轮廓帮助

当我在为我的项目准备一些艺术作品时,我决定在一些对象上添加一个轮廓。 所以我尝试了我的方法。 这是创建一个比第一个稍大的第二个图像,使它全黑,然后绘制与原始图像略微偏移。 有一点点,一切都很好,很花哨,但是我去了一些不同形状的图像,一切都变得很慢。 这是第一个大纲的图像,好的一个: 然后当我尝试了一些不规则的东西时, 所以希望你能看到我的问题,但如果图像是小的,那么我可以尝试描述它。 好的,当我在图像上画一个“轮廓”时,结果是正常的。 然而,当我尝试在更加不规则的图像周围绘制轮廓时,轮廓没有达到图像的所有边缘。 只有一些是可见的。 我想要的是能够围绕图像的边缘一直围绕轮廓,就像第一个图像一样。 有没有更好的方法来绘制轮廓? 或者这是最好的方法,如果是这样,我做错了什么来得到这个结果? 任何帮助表示赞赏, 谢谢!

SFML / GLSL中的轮廓着色器不起作用

我有一个SFML的问题。 此代码不起作用: uniform sampler2D texture; varying vec2 v_texCoords; float offset = 1.0/32; void main() { v_texCoords = gl_TexCoord[0].xy vec4 col = texture2D(texture, v_texCoords); if (col.a == 1) gl_FragColor = col; else { float au = texture2D(texture, vec2(v_texCoords.x , v_texCoords.y -offset )).a; float ad = texture2D(texture, vec2(v_texCoords.x , v_texCoords.y + offset)).a; float al = texture2D(texture, vec2(v_texCoords.x […]

快速精灵轮廓解决scheme?

我希望能够快速地勾画出精灵(主要是黑色的,但是也有其他的颜色),而不需要手动执行,如图所示。 什么是一个好的程序/解决scheme呢? 编辑:我不希望它发生在运行时,我只想要第二个版本,我可以报废第一个。

XNA高级字体渲染(轮廓,阴影等)

我正在寻找一个工具,将输出spritefonts XNA消费有一个轮廓效应。 我知道这可以通过多次渲染文本来完成,但我想在内容管道中处理它。 我能够find的参考选项托管在现在脱机的网站上。 我知道Nuclex有一个vector字体选项,但是我想再次使用精灵字体并在编译时处理渲染。 如果任何人都可以链接到这些免费工具的存档副本,将不胜感激。

我怎样才能做一个软阴影着色器?

在网上find的大多数轮廓着色器或者教程是Shader,它们都是尖锐的轮廓线。 像这儿: 尽管很多游戏已经在使用像这样的简单轮廓: 具有很好的渐变效果。 创建大纲基本上很简单(如下所述: http : //wiki.unity3d.com/index.php/Silhouette-Outlined_Diffuse ) 此外,我看到了在二维效果: https : //www.assetstore.unity3d.com/en/#!/ content/ 84126 但他们如何做到这一点在3D? 我find了一个有用的分步指南:( https://willweissman.wordpress.com/tutorials/shaders/unity-shaderlab-object-outlines/ )。 但是第一步已经不行了。 (将3d对象渲染为纯白色的渲染结构)。

隐藏网格时何处隐藏后处理网格轮廓

我正在设置我的3d引擎中的活动轮廓,这是选定的3D角色或屏幕上的风景的突出效果。 在使用模板缓冲区并获得了一些不令人满意的结果(凹形,由于距离摄像头的轮廓厚度以及桌面和笔记本电脑之间的不一致性问题)后,我切换到边缘检测和帧缓冲区采样,并得到一个轮廓我很满意。 但是,当所选网格位于另一个网格后面时,我无法隐藏轮廓。 这是有道理的,因为我只是渲染场景的其余部分后,从一个帧缓冲区渲染2d着色器的轮廓。 下面是两个屏幕截图。 第一个是一个“好”的轮廓,第二个是在一个网格上看到轮廓的地方。 渲染过程像这样运行:1)只绘制突出显示的网格的alpha值,在帧缓冲区(framebuffer1)中捕捉黑色轮廓。 2)将纹理从framebuffer1传递到执行边缘检测的第二个着色器。 在framebuffer2中捕获边缘。 3)渲染整个场景。 4)从场景顶部的framebuffer2渲染纹理。 关于如何完成,我希望得到一些想法,希望得到关于它们的有效性,或者更简单或更好的方法的反馈。 首先,我想将整个场景渲染到一个帧缓冲区,并将突出显示的网格物体的可见轮廓存储在alpha通道中(全部为白色,高亮显示的网格物体可见)。 然后,我会在Alpha通道上执行边缘检测,渲染场景帧缓冲区,然后将边缘渲染到顶部。 导致这样的事情: 为了做到这一点,我想只在高亮显示的对象的渲染过程中设置一个定义,该高亮显示的对象将在alpha中绘制所有可见像素的黑色。 我的第二个想法是使用上面概述的当前渲染过程,而且在渲染选定网格的轮廓时,还将X,Y和Z坐标存储在framebuffer1的R,G和B通道中。 边缘检测将被执行并存储在framebuffer2中,但是我会将alpha / alpha边缘上的RGB / XYZ值传递给轮廓。 然后,在渲染场景时,我会testing坐标是否存储在framebuffer2中存储的边缘之内。 如果是这样的话,我会testing当前片段的深度,以确定它是否在从RGB通道提取的坐标之前或之后(转换为相机空间)。 如果片段位于深度坐标之前,片段将正常渲染。 如果片段在后面,则将呈现为实心轮廓颜色。 这似乎是一个更复杂和容易出错的方法…我还没有完全掌握在OpenGL中打包和解压浮动,但我的感觉是,我可能遇到浮点精度问题,当试图存储RGB通道中的XYZ坐标。 我在这个项目中使用了LibGDX,并且希望支持WebGL和OpenGL ES,所以没有涉及到几何着色器或者更新的GLSL函数的解决scheme。 如果有人可以评论我提出的方法或者提出更好的建议,我会非常感激。

OpenGL获取多个重叠对象的轮廓

我只是想了一下在c ++中使用opengl制作的游戏:当玩家赢得一些东西的时候,我想在多个重叠的物体上有一个大的轮廓(5-6像素)。 我认为最好的方法是使用模板缓冲区,但是我试图做一些屏幕渲染的模板缓冲区的几个小时,我不能达到任何types的结果,所以很可能。 还有一些其他的技巧! 这是我想要得到的: 有任何想法吗?