- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个问题,我是需要二次幂 (POT) 纹理并且似乎无法使用 NPOT 的幸运者之一。
通常,这不会让我太烦恼,因为我只会确保我需要使用的任何纹理都是 POT。但是,我在尝试将光标 X 和 Y 位置渲染到屏幕时遇到了问题。
public int LoadHudTextures(int xPos, int yPos, Color color, GLControl context)
{
context.MakeCurrent();
int Text_Texture;
text_bmp1 = new Bitmap(50, 24);
Text_Texture = GL.GenTexture();
GL.BindTexture(TextureTarget.Texture2D, Text_Texture);
GL.TexParameter(TextureTarget.Texture2D, TextureParameterName.TextureMagFilter, (int)TextureMagFilter.Nearest);
GL.TexParameter(TextureTarget.Texture2D, TextureParameterName.TextureMinFilter, (int)TextureMinFilter.Nearest);
//GL.TexImage2D(TextureTarget.Texture2D, 0, PixelInternalFormat.Rgba, text_bmp1.Width, text_bmp1.Height, 0,
//OpenTK.Graphics.OpenGL.PixelFormat.Bgra, PixelType.UnsignedByte, IntPtr.Zero);
GL.TexImage2D(TextureTarget.Texture2D, 0, PixelInternalFormat.Rgba, 1024, 1024, 0,
OpenTK.Graphics.OpenGL.PixelFormat.Bgra, PixelType.UnsignedByte, IntPtr.Zero);
Graphics gfx = Graphics.FromImage(text_bmp1);
gfx.Clear(Color.Transparent);
FontFamily fontfamily = new FontFamily("Arial");
Font font = new Font(fontfamily, 16, FontStyle.Regular,GraphicsUnit.Pixel);
gfx.DrawString("X:" + xPos.ToString() + "\n"
+ "Y:" + yPos.ToString(), font, new SolidBrush(color), new PointF(1.5f, 1.5f));
// Upload the Bitmap to OpenGL.
// Do this only when text changes.
System.Drawing.Imaging.BitmapData data = text_bmp1.LockBits(new Rectangle(0, 0, text_bmp1.Width, text_bmp1.Height), System.Drawing.Imaging.ImageLockMode.ReadOnly, System.Drawing.Imaging.PixelFormat.Format32bppArgb);
GL.TexImage2D(TextureTarget.Texture2D, 0, PixelInternalFormat.Rgba, 50, 24, 0,
OpenTK.Graphics.OpenGL.PixelFormat.Bgra, PixelType.UnsignedByte, data.Scan0);
text_bmp1.UnlockBits(data);
return Text_Texture;
}
最佳答案
GL.TexImage2D 破坏当前绑定(bind)的纹理并使用您指定的大小重新创建它。您要做的是在创建 POT 纹理时使用 GL.TexImage2D 一次,然后使用 GL.TexSubImage2D 更新它的特定部分。
当您在屏幕上渲染此纹理时,请指定与您更新的特定部分相对应的 texcoords,即不要从 (0,0) 渲染到 (1,1) 而是从 (0,0) 渲染到 (text_width/pot_width, text_height/锅高)。这样,您可以忽略填充并避免拉伸(stretch)纹理。
在任何情况下,请查看 QuickFont (http://www.opentk.com/project/QuickFont),它允许您直接渲染文本而无需进入肮脏的细节。
关于c# - OpenTK 使用二次幂位图纹理将文本写入屏幕,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8331737/
我根据维基百科页面上指定的基本算法在 Haskell 中实现了二次筛。它适用于大多数整数,但它无法找到 n 次幂的数字 N 的因式分解。对于偶数次幂(平方),算法循环,对于奇数次幂,我找到了几个平方模
我必须多次提高 10 的两倍。 有没有比使用数学库 pow(10,double) 更有效的方法?如果重要的话,我的 double 总是在 -5 到 -11 之间为负数。 我假设 pow(double,
我想写一个函数来返回 2 的下一个幂。因此,如果输入是 18,它将返回 32,这是系列 2、4、8、16、32、64 中下一个大于 18 的数字 如果输入是 40,它将返回 64。 目前我正在使用以下
环境 Ubuntu 17.04,Chrome 60。 在没有警告/错误的情况下在本地运行此示例:https://github.com/mdn/webgl-examples/tree/gh-pages/
我有一个这样的数字序列: 1.687155E21 3.981457E19 0.5532155E21 3.018843E21 2.0532155E21 4.5532155E21 3.1637913E19
谁能告诉我一种方法来找到获得已知值所需的 2 的幂。例如,假设我需要找到 32 的 2 的幂。换句话说,如果我知道某个值,如何找到给出该值的 2 的幂。 if the given value is 6
我有两个值,一个是 X 的基数,一个是 N 的幂,如何才能得到 X 的 N 次幂 ans。 任何代码将不胜感激。 最佳答案 你正在寻找这个: https://api.dartlang.org/stab
我很难找到解决这个问题的方法。我正在尝试用Java开发一个程序,该程序将一个数字作为输入并打印每个数字的幂总和,使得第n位数字的幂是第(n-1)位数字。然而,对于第一位数字,功率应该是最后一位数字的功
我已经做到了这一点,但我不知道如何进一步进行 #include int main() { int x,n,m,i; printf("Enter the value of x: "); scanf("%
如果我有一个介于 100 和 1000 之间的数字,我想得到值 3,因为 10^3 = 1000。同样,如果我有一个介于 10 和 100 之间的数字,我想得到值 2,因为 10^2是 100。 如果
我必须编写一个程序来计算 2 的 2010 次方 的次方并求出数字的总和。例如: if `2 power 12 => gives 4096 . So 4+0+9+6 = 19 . 现在我需要为 2 p
我在最近的比赛中遇到了一个问题。 我无法找到解决方案,并且还没有针对该问题的社论。 Question Link 我在这里引用问题陈述也是为了以防链接不起作用。 找出大于或等于 A 且小于或等于 B (
我找不到用于计算 2^n 的 SSE 指令对于 vector __m128i 32 位整数。 是否有执行以下伪代码的指令或函数? __m128i power_of_two(__m128i b) {
n 的 n 次方(即 n^n)是多项式吗? T(n) = 2T(n/2) + n^n 可以用master方法求解吗? 最佳答案 它不仅不是多项式,而且比阶乘还差。 O(n^n) 支配 O(n!)。同样
我是一名优秀的程序员,十分优秀!