小编Dae*_*all的帖子

在英特尔上编译详细的GLSL Shader

我有一个使用GLSL着色器的项目.

除非出现问题或明确打开一些额外的调试输出,否则此项目不会向stdout打印任何内容.

当着色器编译失败时,给定的日志长度glGetProgramInfoLog> 0,有时当它> 0时成功,并给出编译警告.当你有一个完美编译的着色器时,日志长度<1 ...这就是我在开发机器上的NVidia卡上的工作方式.

对于我的罪过,我也在带有intel集成显卡的笔记本电脑上做了一些开发.代码运行正常,但每当我执行着色器编译时,日志包含:

"shader已成功编译为在硬件上运行"

这是非常烦人的,因为我现在无法决定是否应该打印出字符串,除了某种字符串分析,例如:

strstr("successfully",log)
Run Code Online (Sandbox Code Playgroud)

希望这显然是为什么这是不可取的.如果有的话,我可以判断一条消息是否值得使用OpenGL api打印出来?

编辑:

如果我使用glGetShaderiv(shaderobj,GL_COMPILE_STATUS,&err);那么我没有得到编译警告,只有错误.

opengl shader glsl

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

opengl如何决定使用哪个mip级别?

问题是相当自我解释的.我问的是使用可能来自任何地方的纹理坐标(统一,变化,另一个纹理提取).

比方说,我在mipmapped(或各向异性过滤)纹理上进行纹理提取,并使用在顶点着色器中设置的变化的平方.我假设glsl不能确定这样的任意复杂函数的导数,那么它如何知道使用哪个mip级别?

谢谢.

opengl glsl

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

我可以在PHP中访问重复的post变量而不使用名称中的"[]"吗?

说有一个表格:

<form enctype="multipart/form-data" method="post">
    <input name='foo'>
    <input name='foo'>
    <input type=submit>
</form>
Run Code Online (Sandbox Code Playgroud)

发布到我的PHP脚本.如何(如果有的话)我可以找到这些框中提交的两个值.$_POST['foo']给出第二个值,但我想要两个.

我意识到这可以通过使用<input name='foo[]'>(这会产生$_POST['foo']一个数组)来完成.由于某些编码决定,添加方括号是不可取的(读:需要一些重组),似乎应该有一个简单的方法来做到这一点.

如果enctype是'application/x-www-form-urlencoded',那么解析它会很容易,但"multipart/form-data"更复杂,可能有30MB的文件!

更不用说PHP已经解析了帖子数据.

请有人告诉我,PHP保存了从$ _POST解析的信息,并且我可以在不重新解析的情况下访问它.

谢谢!

php post

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

未在模板化函数/类中使用stl容器

当我尝试编译以下代码时......

#include <vector>

template <class T> void DoNothing()
{
    std::vector<T>::iterator it;
}

int main(int argc, char**argv)
{
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

g ++说:

test.cpp:5:错误:预期`;' 在'它'之前

我不明白为什么这是一个问题.如果我用它替换它std::vector<int>::iterator,比如,它按预期工作正常.

你可以看到我没有实例化这个函数,所以g ++必须有模板定义本身的问题,但我看不出它是如何无效的.

感谢您提供有关最新情况的任何建议.

NB我实际上是在尝试编写模板化的类并且遇到地图而不是向量的问题,但这是我问题的最简单的测试用例.

c++ templates stl

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

标签 统计

glsl ×2

opengl ×2

c++ ×1

php ×1

post ×1

shader ×1

stl ×1

templates ×1