小编Fab*_*tel的帖子

不支持 Safari 清晰边缘?

这让我非常疯狂。我正在尝试升级一些像素艺术,而 Safari 并没有打球。这是我应用于图像的 CSS:

.avatar {
width: 140px;
height: 224px;
image-rendering: optimizeSpeed;             /* Older versions of FF          */
image-rendering: -moz-crisp-edges;          /* FF 6.0+                       */
image-rendering: -webkit-optimize-contrast; /* Safari                        */
image-rendering: -o-crisp-edges;            /* OS X & Windows Opera (12.02+) */
image-rendering: pixelated;                 /* Awesome future-browsers       */
-ms-interpolation-mode: nearest-neighbor;   /* IE                            */
}
Run Code Online (Sandbox Code Playgroud)

现在这在 Chrome 中效果很好,看起来像这样: 清晰的像素

但在 Safari 上,它呈现出这种模糊的混乱: 一团糟

我正在使用 Safari 8.0,我看到的每个线程都说这应该可以工作。它不是。根本不是。我知道有一些解决方案涉及在画布上绘图,但来吧......现在是 2015 年,我不应该跳过箍来使用最基本的升级算法进行升级。

html css safari image pixel

6
推荐指数
0
解决办法
211
查看次数

GLSL立方体签名距离字段实现说明?

我一直在寻找并试图理解下面的代码

float sdBox( vec3 p, vec3 b )
{
  vec3 d = abs(p) - b;
  return min(max(d.x,max(d.y,d.z)),0.0) +
         length(max(d,0.0));
}
Run Code Online (Sandbox Code Playgroud)

我理解length(d)处理SDF的情况,其中点离开'拐角'(即所有组件d都是正的)并且max(d.x, d.y, d.z)在所有其他情况下给我们适当的距离.我不明白的是,如果不使用if语句检查d组件的符号,这两者是如何组合在一起的.

当所有d组件都是正数时,返回表达式可以减少到length(d)因为min/max评估的方式- 当所有d组件都是负数时,我们得到max(d.x, d.y, d.z).但我怎么理解中间案件呢?那些组成部分d有混合迹象的那些?

我一直试图把它绘制成无济于事.如果有人能用几何/数学术语向我解释,我真的很感激.谢谢.

shader geometry raytracing glsl raymarching

6
推荐指数
2
解决办法
1851
查看次数

char**argv []在尝试从命令行获取输入时出现段错误

我正在尝试做最基本的事情,并且正在打砖墙.我试图从命令行读取文件名以便稍后在我的程序中使用,但我甚至无法从argv []中提取名称.这是代码:

#include <iostream>
#include <string.h>

using namespace std;

int main(int argc, char **argv[]){
    cout << "argc = " << argc << "\n\n";
    cout << "Filename: " << argv[1] << "\n";
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

我正在测试它当然提供参数的输入,因为没有错误检查.这是我运行程序时得到的结果:

./a.out testfilename
Run Code Online (Sandbox Code Playgroud)

*

argc = 2

Filename: 0x7fff56e41d30
Run Code Online (Sandbox Code Playgroud)

现在我明白了argv [1]是一个指向字符数组的指针,所以这个输出是有意义的.但是,如果我进行以下更改,

cout << "Filename: " << argv[1] << "\n";
Run Code Online (Sandbox Code Playgroud)

cout << "Filename: " << *argv[1] << "\n";
Run Code Online (Sandbox Code Playgroud)

为了取消引用argv [1]来拉出实际的字符串,我得到了一个分段错误..

c++ input argv argc

1
推荐指数
1
解决办法
262
查看次数

标签 统计

argc ×1

argv ×1

c++ ×1

css ×1

geometry ×1

glsl ×1

html ×1

image ×1

input ×1

pixel ×1

raymarching ×1

raytracing ×1

safari ×1

shader ×1