我想留下OpenGL的灯光,然后自己做.我希望我的着色器允许可变数量的灯光.
我们可以在GLSL着色器中声明一组制服吗?如果是这样,我们如何设定这些制服的价值?
我一直在为Ubuntu全屏-nw模式(终端)学习Emacs,我遇到了这个恼人的问题.每当我按下LAlt- [chr],其中chr是某个字符,如果该键组合碰巧是屏幕顶部其中一个终端菜单的快捷方式,则菜单将打开,Emacs中不会发生任何事情.如何防止这些组合键影响菜单栏?
我一直在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) 我下载了Git for Win32的便携版本,它是一个自解压包中的版本.我希望能够从任何地方(我的flashdrive)推送提交,但我不知道如何使用不在users/USERNAME/.ssh中的公钥.如何配置Git以自动使用另一个目录中的密钥?
(我可以在其他目录中生成密钥,但Git会自动发送c:/users/me/.ssh中的密钥)
注意:我使用的是Win32!不是Linux或OSX!
我的目标是最终执行一个python脚本来操作我的C++程序中的值,一次一行,在python脚本中的语句之间返回执行我的C++程序.现在,我一直试图将python解释器我的脚本一次一行地提供给我.但它想要一个上下文,我不知道如何构建它.谁能指点我一些好的教程(文档对此不是很好).
我选择了最接近我的问题的答案,但我相信这可能不足以控制某些应用程序.适用于这些应用程序的答案可能涉及Python API中的低级调用.如果您有一个能够更好地控制执行的答案,请回答这个问题.
我问了另一个跟随这个问题的问题,因为我之后遇到了非常密切相关的不同问题.链接:Python C API - 停止执行(稍后继续)
如果我调用一个函数,并用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) 我正在开发一个用于序列化/反序列化的系统,我正在尝试使用函数来获得一些非常奇特的东西.我的目标是以人类可读和可逆的方式序列化包含函数的对象(序列化文件需要在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将跟踪该文件中的函数行号
我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.f或100.f变大.
我认为这可能是一个舍入错误的问题,但除此之外我不知道是什么原因导致它.这是舍入错误吗?我可以通过定期规范化矩阵来解决它吗?glm是否具有规范化矩阵的功能,还是我必须自己编写一个?
我之前使用过OpenGL,已经有一段时间了,但我认为这不是很糟糕.我在这段代码中遗漏了一些东西.我只是想看一个我正在使用该cube()功能绘制的立方体.
我做过/尝试过的事情......
我错过了什么?我所能看到的只是我指定的清晰颜色,填满了屏幕并嘲弄我.
#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) 目标平台: Windows XP高中计算机
需要的库: SFML,GLEW,ODE,Python(用于嵌入)
计划的功能让我相信我可能需要多线程:
我需要多线程来完成这个项目吗?
c++ ×5
opengl ×3
debugging ×2
python ×2
sfml ×2
3d ×1
api ×1
arrays ×1
c# ×1
emacs ×1
git ×1
github ×1
glsl ×1
goto ×1
graphics ×1
interpreter ×1
lua ×1
matrix ×1
memory-leaks ×1
ode-library ×1
perlin-noise ×1
recursion ×1
rotation ×1
rsa ×1
scenegraph ×1
shader ×1
ssh ×1
ssh-keys ×1
stack ×1
terrain ×1
ubuntu ×1