小编Mil*_*les的帖子

创建GLSL阵列的制服?

我想留下OpenGL的灯光,然后自己做.我希望我的着色器允许可变数量的灯光.

我们可以在GLSL着色器中声明一组制服吗?如果是这样,我们如何设定这些制服的价值?

arrays opengl shader glsl

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

Ubuntu终端中的Emacs:Meta键打开菜单

我一直在为Ubuntu全屏-nw模式(终端)学习Emacs,我遇到了这个恼人的问题.每当我按下LAlt- [chr],其中chr是某个字符,如果该键组合碰巧是屏幕顶部其中一个终端菜单的快捷方式,则菜单将打开,Emacs中不会发生任何事情.如何防止这些组合键影响菜单栏?

emacs ubuntu

19
推荐指数
2
解决办法
6343
查看次数

Perlin地形页面不匹配:难以捉摸的bug

我一直在Unity游戏引擎中开发一款游戏,希望能够将分页地形用于无限世界(如今的常见主题).我的地形发生器专门使用perlin噪音.但是在这个时候,一个错误严重减缓了开发:页面边缘不匹配,甚至没有关闭.问题出现在我生成地形的代码中,或者可能在我每次生成页面时运行的另一段代码中.但问题绝对不在于统一函数调用,所以即使你不熟悉统一,你也可以帮助我.

可能的原因...... 1)针对每页错误位置采样的Perlin噪声,数学失败.2)在页面生成之间重新生成随机数生成器.3)Perlin噪声正在重新生成页面之间.4)?我不知道.

注意:我几乎排除了数字2和3,看着我所有的其他代码.我只对每个发生器播种一次,Unity不会恰好在发生器的运行之间重新种植Random.

实际上,如果您可以描述一种调试方法,这将使这更容易,请建议.从长远来看,它会对我有所帮助.

这是我为每个页面运行一次的代码,带有完整的注释,因此您不必了解Unity3D ...

 /* x and y are the indices of the tile being loaded. The game maintains a
    square of pages loaded, where the number of pages per side is equal to
    loadSquares (see below). x and y are the indices of the page to generate
    within that square. */
    public void generate(int x, int y)
    {
         /* pagePos represents the world x and y coordinates of the bottom left
            corner of the page being …
Run Code Online (Sandbox Code Playgroud)

c# debugging terrain unity-game-engine perlin-noise

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

便携式Git和GitHub:SSH密钥

我下载了Git for Win32的便携版本,它是一个自解压包中的版本.我希望能够从任何地方(我的flashdrive)推送提交,但我不知道如何使用不在users/USERNAME/.ssh中的公钥.如何配置Git以自动使用另一个目录中的密钥?

(我可以在其他目录中生成密钥,但Git会自动发送c:/users/me/.ssh中的密钥)

注意:我使用的是Win32!不是Linux或OSX!

git ssh rsa github ssh-keys

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

使用C++ Python API逐行执行python脚本

我的目标是最终执行一个python脚本来操作我的C++程序中的值,一次一行,在python脚本中的语句之间返回执行我的C++程序.现在,我一直试图将python解释器我的脚本一次一行地提供给我.但它想要一个上下文,我不知道如何构建它.谁能指点我一些好的教程(文档对此不是很好).

我选择了最接近我的问题的答案,但我相信这可能不足以控制某些应用程序.适用于这些应用程序的答案可能涉及Python API中的低级调用.如果您有一个能够更好地控制执行的答案,请回答这个问题.

我问了另一个跟随这个问题的问题,因为我之后遇到了非常密切相关的不同问题.链接:Python C API - 停止执行(稍后继续)

c++ python api interpreter

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

调用一个函数并使用goto:内存泄漏来转义它?

如果我调用一个函数,并用goto转义它,我是否会泄漏到堆栈中?那就像是除以零吗?宇宙是否会在逆转大爆炸中爆发?

这不是我的程序,但它具有几乎完全相同的结构......

bool func()
{
    blah(1337.1337);
    uber("iasouhfia");
    if(random) goto escapeLadder;
}

int main(int argc, char* argv[])
{
    for(int i = 0; i < 5000000; i++)
    {
        func();
    } 
    escapeLadder:
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

c++ recursion stack memory-leaks goto

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

Lua:获取功能源

我正在开发一个用于序列化/反序列化的系统,我正在尝试使用函数来获得一些非常奇特的东西.我的目标是以人类可读和可逆的方式序列化包含函数的对象(序列化文件需要在loadfile()步骤之后进行处理).我需要一种方法来获取函数的实际来源,看起来我不能总是用debug.getinfo()来做.

我知道debug.getinfo()将给出定义它的文件和行(或函数的来源,具体取决于它的来源).有没有办法可以从该文件中读取函数文本?我愿意使用某种解析器实用程序来实现这一点.也许有用于解析Lua代码的Lua包?

也许有一种方法可以让loadfile()或require()在某处自动保留函数源?

是的,我知道你可以从debug.getinfo中获取各种信息,但它无法处理通过stdin加载的函数...

uberblah@glade-m:~$ lua
Lua 5.1.5  Copyright (C) 1994-2012 Lua.org, PUC-Rio
> a = function() print("hello, world!") end
> require("serpent")
> s = require("serpent")
> =s.block(debug.getinfo(a))
{
  currentline = -1,
  func = loadstring("LuaQ\000\000\000\000\000\000\000\000\000=stdin\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000A@\000\000@\000\000?\000\000\000\000\000\000\000\000\000\000\000print\000\000\000\000\000\000\000\000hello, world!\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000",'@serialized') --[[function: 0x2068a30]],
  lastlinedefined = 1,
  linedefined = 1,
  namewhat = "",
  nups = 0,
  short_src = "stdin",
  source = "=stdin",
  what = "Lua"
} --[[table: 0x206cf80]]
> f = io.open("stdin", "r")
> =f
nil
Run Code Online (Sandbox Code Playgroud)

来自STDIN的源解决方​​案... 1)捕获所有STDIN,将其写入文件2)从该文件加载信息,而不是从stdin加载3)debug将跟踪该文件中的函数行号

debugging lua serialization introspection

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

旋转4x4矩阵会导致时间缩放

glm::rotate用来旋转场景中立方体的变换矩阵.

"cube->t = glm::rotate(cube->t, stepTime * 50.f, glm::vec3(0.f, 1.f, 0.f));"每帧调用一次,其中cube->t是所讨论的矩阵.

奇怪的是,在20分钟的过程中(如果我旋转stepTime * 5000.f而不是两分钟stepTime * 50.f),立方体在X和Z轴上显着缩放,这两个轴上的缩放始终相同(高度)立方体永远不会改变,但宽度和深度改变的数量完全相同).在5000.f变小的情况下,与正常50.f100.f变大.

我认为这可能是一个舍入错误的问题,但除此之外我不知道是什么原因导致它.这是舍入错误吗?我可以通过定期规范化矩阵来解决它吗?glm是否具有规范化矩阵的功能,还是我必须自己编写一个?

c++ opengl rotation matrix scenegraph

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

SFML + OpenGL:无法绘制多维数据集

我之前使用过OpenGL,已经有一段时间了,但我认为这不是很糟糕.我在这段代码中遗漏了一些东西.我只是想看一个我正在使用该cube()功能绘制的立方体.

我做过/尝试过的事情......

  • 翻转主循环中+和 - z之间的转换
  • 在主循环之前打开/关闭背面剔除
  • glLoadIdentity()开头
  • 在开始时设置我的投影
  • window.resetGLStates()开头
  • window.setActive(true)在开头
  • 确保我留在glMatrixMode(GL_MODELVIEW)

我错过了什么?我所能看到的只是我指定的清晰颜色,填满了屏幕并嘲弄我.

#include <SFML/System.hpp>
#include <SFML/Window.hpp>
#include <SFML/Graphics.hpp>
#include <SFML/OpenGL.hpp>

void cube();

int gltest()
{
    sf::RenderWindow window(sf::VideoMode(800, 600), "SFML works!", sf::Style::Default);
    window.setVerticalSyncEnabled(true);
    window.setActive(true);
    window.resetGLStates();
    sf::Vector2u wsize = window.getSize();

    glClearColor(0.3f, 0.3f, 0.3f, 1.f);
    glDepthMask(true);
    glEnable(GL_DEPTH_TEST);
    //to make sure I'm not missing anything here.
    glDisable(GL_CULL_FACE);

    glMatrixMode(GL_PROJECTION);
    glViewport(0, 0, wsize.x, wsize.y);
    gluPerspective(60, (float)wsize.x / (float)wsize.y, 0.1f, 512.f);
    glMatrixMode(GL_MODELVIEW);
    glLoadIdentity();

    bool running = true;
    while(running)
    {
        sf::Event event;
        while(window.pollEvent(event))
        {
            switch(event.type)
            { …
Run Code Online (Sandbox Code Playgroud)

c++ opengl 3d graphics sfml

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

我需要多线程来完成这个项目吗?

目标平台: Windows XP高中计算机

需要的库: SFML,GLEW,ODE,Python(用于嵌入)

计划的功能让我相信我可能需要多线程:

  1. 多达一百个机器人全部实时解释python脚本.
  2. 所有机器人及其组件在物理模拟中与其环境相关.
  3. 在玩家周围的大部分中生成详细的环境.
  4. 游戏运行时可能需要将文件写入硬盘.
  5. (除了这些功能,目标平台让我担心)

我需要多线程来完成这个项目吗?

c++ python multithreading sfml ode-library

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