首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在手机上画一个大的中空钻石?

如何在手机上画一个大的中空钻石?
EN

Stack Overflow用户
提问于 2020-06-13 10:40:40
回答 1查看 71关注 0票数 1

我想渲染一个非常大的中空钻石。在片段着色器中,如果某个点位于菱形内部,则不会对其进行渲染,否则会对其进行渲染。该程序在PC上运行得很好,但在Android手机上却不起作用。我想这应该是由准确性问题引起的。菱形的大小已更改。有时它太大,超过了GLSL中的中值。有没有其他方法可以简单地在手机屏幕上渲染一个空心的菱形?主要代码如下:

代码语言:javascript
运行
复制
uniform mediump vec4 user_DiamondCenter;
uniform mediump vec4 user_DiamondSize;
varying mediump vec4 v_worldPos;

lowp vec4 fragmentColor = v_fragmentColor;
lowp vec4 srcColor = texture2D(CC_Texture0, v_texCoord);
mediump vec4 testPoint = (v_worldPos - user_DiamondCenter);
lowp float fIn = step(user_DiamondSize.y * user_DiamondSize.x * 0.5f, abs(testPoint.x * user_DiamondSize.y) + abs(testPoint.y * user_DiamondSize.x));
fragmentColor.a = fragmentColor.a * fIn;
gl_FragColor = fragmentColor * srcColor;

user_DiamondSize可能非常大,因此会导致问题。是否有任何解决方案,或任何其他简单的方法来渲染这个巨大的空心菱形?摄影机正在移动,有时需要渲染此菱形的边界。

EN

回答 1

Stack Overflow用户

发布于 2020-06-22 20:16:07

如果相机在物体内,并且物体不是只在手机上渲染的,那么明显的问题是面部剔除。

代码语言:javascript
运行
复制
glDisable(GL_CULL_FACE) 

这将禁用剔除,以便您可以检查这是否是问题所在

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62354917

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档