小编j r*_*riv的帖子

如何强制重新编译Makefile中的单个文件?

这个想法是项目中有一个文件__DATE__和一个文件__TIME__.在没有明确更改其修改日期的情况下重新编译它可能会很酷.

编辑:$(shell touch -c ..)可能是一个很好的解决方案,如果只是笨拙.

c c++ makefile autotools

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

我们如何获得 glDrawElements() 的索引?

我正在尝试使用 Assimp 库将模型导入到使用 VBO 的基本 OpenGL 应用程序。

如果我理解正确, glDrawElements 是理想的现代绘画方式之一。

但是我们如何从通用导入库中获取这些信息呢?

如果您有特定的 Assimp 库知识,将不胜感激。

——

生成这些的过程通常是什么?

opengl opengl-3

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

现代OpenGL中的gl_ModelViewMatrix和gl_ModelViewProjectionMatrix是什么?

我有这个代码是上下文"#version 330 core"

gl_Position =           PerspectiveViewMatrix(90.0, AspectRatio, 0.01, 1000.0  )


                        *    TranslationMatrix(0, 0, -4 -0.35*MouseWheel)        


                        *    RotationMatrix(MouseMovement.y, X_AXIS)        
                        *    RotationMatrix(-MouseMovement.x, Y_AXIS)    
                        *    RotationMatrix(float(Strafing*3), Z_AXIS)    


                        *    TransformationMatrix

                        *    in_Vertex;
Run Code Online (Sandbox Code Playgroud)

哪个部分是旧的gl_ModelViewMatrix,哪个部分是gl_ModelViewProjectionMatrix?(什么是用于创建ModelViewProjection的gl_ProjectionMatrix?)

opengl opengl-3

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

什么是现代GLSL中的半矢量?

http://www.lighthouse3d.com/opengl/glsl/index.php?ogldir2 报告说,OpenGL上下文中的一半矢量是"眼睛位置 - 光线位置",但随后它继续说'幸运的是,OpenGL为我们计算它'[现已弃用].

如何,实际上可以计算(一个简单的例子将非常感激)[主要是,它困惑我什么是"眼睛"是什么以及如何得出].

目前我设法使镜面计算工作(具有良好的视觉效果),半矢量等于Light所在的Light

vec3 Light = normalize(light_position - vec3(out_Vertex));
Run Code Online (Sandbox Code Playgroud)

现在,我不知道为什么会这样.

[如果至少我知道"眼睛"是什么以及如何实际得出它.]

opengl graphics glsl

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

返回流程是否根据C标准转换/转换结果所需的类型,或者仅在某些实现中支持?

我注意到了

float f; 
[..]
printf("%i\n", f);
Run Code Online (Sandbox Code Playgroud)

不合理

printf("%i\n", (int)f);
Run Code Online (Sandbox Code Playgroud)

但是也

int func(float f) {
    return f;
}
Run Code Online (Sandbox Code Playgroud)

没问题

printf("%i\n", func(f));
Run Code Online (Sandbox Code Playgroud)

是由返回流程或标准支持的功能完成的转换/转换,还是理想的需要

int func(float f) {
    return (int) f;
}
Run Code Online (Sandbox Code Playgroud)

c

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

OpenGL和线程

众所周知,OpenGL驱动程序通常不会容忍[多线程]线程.但是,是否必须处理带来GL上下文的主线程(例如SDL)?如果一个产生一个线程,然后从那里开始发送OpenGL命令会安全吗?或者它是否必须限制在提升GL上下文的主线程中?

opengl multithreading sdl

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

根据标准,哪种类型的转换明显多余?

我对有关此事的规则感到困惑[一个好的URL可能会节省回答的时间].我注意到很多时间转换隐含地起作用,但其他时候它是必需的.

例如,我曾预料到它会起作用:

long long a;
int b;
[..]
a = b * 1000;
Run Code Online (Sandbox Code Playgroud)

但事实证明,'a'溢出并且它是必需的

a = (long long) b * 1000;
Run Code Online (Sandbox Code Playgroud)

这是特殊的,因为'a'是我认为它会打扰的'大'.

无论如何,除了这个例子,您是否知道有关此事的全面信息来源?没有"大部分时间都没事",这让我变得偏执.

编辑:这只是'第二部分首先进行计算并且溢出,遵循该规则'的问题吗?

EDIT2:如果有计算如

long long a;
int b;
short c;
[..]
c = b + a * 3;
Run Code Online (Sandbox Code Playgroud)

,会做的

c = b + (int) a * 3; 
Run Code Online (Sandbox Code Playgroud)

确保正确转换?

还是需要呢?

c = (short) b + (int) a * 3; 
Run Code Online (Sandbox Code Playgroud)

或者,它是否足够

c = (short) b + a * 3; 
Run Code Online (Sandbox Code Playgroud)

c

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

为什么C/C99标准的作者没有为sizeof浮点类型指定..standard?

我注意到在windows和linux x86上,float是4bytes,double是8,但long xins分别是x86和x86_64上的12和16.C99应该用特定的整体尺寸打破这种障碍.

最初的技术限制似乎是由于x86处理器无法处理超过80位的浮点运算(加上2个字节来进行舍入),但为什么标准与int类型相比不一致?他们为什么不至少达到80bit标准化?

c programming-languages c99

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

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

静态/全局枚举变量的初始值是多少?

例如地震发动机

typedef enum {qfalse, qtrue} qboolean;
Run Code Online (Sandbox Code Playgroud)

当一个人这样做

static qboolean variable;
Run Code Online (Sandbox Code Playgroud)

变量的启动值是0吗?

c variables boolean initialization declaration

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