ios - 相当于 OpenGL 混合的金属
问题描述
我试图了解mix
OpenGL
金属中的功能等价物。这是OpenGL
我要转换的代码:
float udRoundBox( vec2 p, vec2 b, float r )
{
return length(max(abs(p)-b+r,0.0))-r;
}
void mainImage( out vec4 fragColor, in vec2 fragCoord )
{
// setup
float t = 0.2 + 0.2 * sin(mod(iTime, 2.0 * PI) - 0.5 * PI);
float iRadius = min(iResolution.x, iResolution.y) * (0.05 + t);
vec2 halfRes = 0.5 * iResolution.xy;
// compute box
float b = udRoundBox( fragCoord.xy - halfRes, halfRes, iRadius );
// colorize (red / black )
vec3 c = mix( vec3(1.0,0.0,0.0), vec3(0.0,0.0,0.0), smoothstep(0.0,1.0,b) );
fragColor = vec4( c, 1.0 );
}
到目前为止,我能够转换其中的一部分:
float udRoundBox( float2 p, float2 b, float r )
{
return length(max(abs(p)-b+r,0.0))-r;
}
float4 cornerRadius(sampler_h src) {
float2 greenCoord = src.coord(); // this is alreay in relative coords; no need to devide by image size
float t = 0.5;
float iRadius = min(greenCoord.x, greenCoord.y) * (t);
float2 halfRes = float2(greenCoord.x * 0.5, greenCoord.y * 0.5);
float b = udRoundBox( float2(greenCoord.x - halfRes.x, greenCoord.y - halfRes.y), halfRes, iRadius );
float3 c = mix(float3(1.0,0.0,0.0), float3(0.0,0.0,0.0), smoothstep(0.0,1.0,b) );
return float4(c, 1.0);
}
但它正在产生绿屏。我正在尝试在这样的视频上实现圆角半径:
解决方案
推荐阅读
- ios - 重用单元格时触发 UITableView
- java - 使用带有 ajax 请求的表单调用 Servelt (FIlter)(必须使用授权标头)
- latex - 有谁知道乳胶中小于或大于 \lessgtr 的符号代码
- reporting-services - 如何为报表中动态创建的矩阵中的列添加标题?
- php - 从特定用户获取列 INT 值
- android - 我需要使用所有drawable、drawable-mdpi、drawable-hdpi、drawable-xhdpi、drawable-xxhdpi和drawable-xxxhdpi吗?
- android - 如何在 ArCore 中获取跟踪状态
- mysql - 从两个表中获取mysql数据
- oracle - LDAP:空的binddn“”和身份验证类型从无变得简单
- c# - 使用 DispatcherTimer 显示随机数