小编jPr*_*015的帖子

OpenGL纹理采样根据摄像机位置而不同

我正在从加载的高度图数据渲染基于点的地形 - 但这些点会根据摄影机位置的位置更改其纹理.为了演示这个错误(以及这不是因为z缓冲问题而发生的事实)我已经截取了从非常微小的不同摄像机位置(相同的角度)以固定的5像素大小渲染的点的截图,如下所示:

PS:如果将图像拖动到新标签中,图像足够大,没有意识到堆栈会将它们缩小到这么多.

州1: 状态1图像

州2: 状态2图像

生成点的代码相对简单,所以我发布这个只是为了排除选项 - mapArray是一个单维浮点数组并复制到VBO:

for(j = 0; j < mHeight; j++)
{
    for(i = 0; i < mWidth; i++)
    {
        height = bitmapImage[k];

        mapArray[k++] = 5 * i;
        mapArray[k++] = height;
        mapArray[k++] = 5 * j;
    }
}
Run Code Online (Sandbox Code Playgroud)

我发现我更有可能需要调整我的片段着色器,因为我对着色器并不是很好 - 虽然我不确定这些简单代码在哪里出错但猜测它可能不适合用途(基于点渲染).贝娄是我的碎片着色器:

in varying vec2 TexCoordA;
uniform sampler2D myTextureSampler;

void main(){
    gl_FragColor = texture2D(myTextureSampler, TexCoordA.st) * gl_Color;
}
Run Code Online (Sandbox Code Playgroud)

编辑(请求的信息):OpenGL版本4.4没有使用纹理标志.

TexCoordA直接从我的Vertex着色器传递到着色器,完全没有任何改动.自我计算的紫外线使用这个:

float* UVs = new float[mNumberPoints * 2];
    k = 0; 
    for(j = 0; j < mHeight; …
Run Code Online (Sandbox Code Playgroud)

c++ opengl terrain heightmap

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

Express JS:无法读取未定义的属性“lazyrouter”

我正在围绕 Express JS 创建一个抽象层,但遇到了问题。考虑以下代码(见底部),当调用 registerRoute 并点击该行时:

expressFnc(route, (req: any, res: any, next: any) => dummy(req, res, next));
Run Code Online (Sandbox Code Playgroud)

我遇到了错误:

无法读取未定义的属性“lazyrouter”

在这种情况下,我认为“this”适用于 ExpressJS (lib/application.js:479:10)。

const express = require("express");

export class ExpressHttpHost implements IHttpHost {
  private host: any = express();
  private contentResolver?: ContentResolver;

  public configure(contentResolver: ContentResolver): void {
    this.contentResolver = contentResolver;
  }

  public registerRoute(
    route: string,
    verb: HttpVerb,
    handler: (request: HttpRequest) => HttpResponse,
  ): void {
    switch (verb) {
      case HttpVerb.Get:
        this.createDummyRequest(this.host.get, route, handler);
        break;
      case HttpVerb.Delete:
        this.createDummyRequest(this.host.delete, route, handler);
        break;
      case HttpVerb.Options: …
Run Code Online (Sandbox Code Playgroud)

javascript node.js express

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

返回1281的OpenGL glVertexPointer - 无法弄清楚原因

我创建了一个类来从高度图文件中加载Terrain点; 但绘制它们会导致崩溃.我已经将错误缩小到glVertexPointer()函数,该函数返回1281(无效值导致我相信).我已经通过了完整的65k-ish点,似乎无法找到它的问题.在渲染循环中之前发生的唯一其他事情是设置GL_PROJECTION和GL_MODELVIEW以及glClear()(显然是在这个绘制调用之后的交换缓冲区).

class Terrain : public Model
{
public:
Terrain(char* pFile){
    if(!LoadTerrain(pFile))
    {
        OutputDebugString("Loading terain failed.\n");
    }
};

~Terrain(){};

void Draw()
{
    glPushMatrix();
    //glEnableClientState(GL_VERTEX_ARRAY); // Depreciated? Causes crash

    glBindBuffer(GL_ARRAY_BUFFER, mVBO);
    glVertexPointer(mNumberPoints, GL_FLOAT, 0, (GLvoid*)((char*)NULL));

    GLenum a = glGetError(); // 1281

    glPointSize(5.0f);
    glDrawArrays(GL_POINTS, 0, mNumberPoints);

    glBindBuffer(GL_ARRAY_BUFFER, 0);

    //glDisableClientState(GL_VERTEX_ARRAY);

    glPopMatrix();
}

private:
GLuint mVBO;
int mWidth;
int mHeight;
int mNumberPoints;

bool LoadTerrain(char* pFile)
{
    FILE* filePtr;
    int error;
    unsigned int count;
    BITMAPFILEHEADER bfh;
    BITMAPINFOHEADER bih;
    int imageSize, i, j, k, index;
    unsigned …
Run Code Online (Sandbox Code Playgroud)

c++ opengl terrain heightmap

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

GLSL编译器错误错误C0000:语法错误,意外标识符,在标记<var>处期望"::"

我的系统配置如下:SDL2,Fedora 21,Nvidia GTX驱动程序.

[mhoggan@localhost build]$ glxinfo | grep version
server glx version string: 1.4
client glx version string: 1.4
GLX version: 1.4
OpenGL core profile version string: 4.4.0 NVIDIA 346.47
OpenGL core profile shading language version string: 4.40 NVIDIA via Cg compiler
OpenGL version string: 4.5.0 NVIDIA 346.47
OpenGL shading language version string: 4.50 NVIDIA
OpenGL ES profile version string: OpenGL ES 3.1 NVIDIA 346.47
OpenGL ES profile shading language version string: OpenGL ES GLSL ES 3.10
    GL_EXT_shader_implicit_conversions, GL_EXT_shader_integer_mix, 
[mhoggan@localhost …
Run Code Online (Sandbox Code Playgroud)

c++ opengl sdl glsl fedora-21

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

标签 统计

c++ ×3

opengl ×3

heightmap ×2

terrain ×2

express ×1

fedora-21 ×1

glsl ×1

javascript ×1

node.js ×1

sdl ×1