如何使用 P3D 渲染器实现 noSmooth()?

2023-12-11

我想使用 P3D 渲染器通过 PGraphics 实例渲染基本的 3D 形状,而无需任何锯齿/平滑,但 noSmooth() 似乎不起作用。

在 OF 我记得打电话给setTextureMinMagFilter(GL_NEAREST,GL_NEAREST);在纹理上。

在处理中相当于什么?

我尝试使用PGL:

PGL.TEXTURE_MIN_FILTER = PGL.NEAREST;
PGL.TEXTURE_MAG_FILTER = PGL.NEAREST;

但结果我得到了黑色图像。 如果我评论PGL.TEXTURE_MIN_FILTER = PGL.NEAREST;我可以看到渲染,但它是插值的,不清晰。

这是一个基本的测试草图,其中包含我尝试过的一些内容:

PGraphics buffer;
PGraphicsOpenGL pgl;

void setup() {
  size(320, 240, P3D);
  noSmooth();
  //hint(DISABLE_TEXTURE_MIPMAPS);

  //((PGraphicsOpenGL)g).textureSampling(0);

  //PGL pgl = beginPGL();
  //PGL.TEXTURE_MIN_FILTER = PGL.NEAREST;
  //PGL.TEXTURE_MAG_FILTER = PGL.NEAREST;
  //endPGL();

  buffer=createGraphics(width/8, height/8, P3D);
  buffer.noSmooth();
  buffer.beginDraw();
  //buffer.hint(DISABLE_TEXTURE_MIPMAPS);
  //((PGraphicsOpenGL)buffer).textureSampling(0);
  PGL bpgl = buffer.beginPGL();
  //PGL.TEXTURE_MIN_FILTER = PGL.NEAREST;//commenting this back in results in a blank buffer
  PGL.TEXTURE_MAG_FILTER = PGL.NEAREST;
  buffer.endPGL();
  buffer.background(0);
  buffer.stroke(255);
  buffer.line(0, 0, buffer.width, buffer.height);
  buffer.endDraw();
}
void draw() {

  image(buffer, 0, 0, width, height);
}

(我也曾发布在处理论坛上,但到目前为止还没有运气)


你实际上走在正确的轨道上。您只是将错误的值传递给textureSampling().

自文档于PGraphicsOpenGL::textureSampling()至少可以说有点稀缺。 我决定使用反编译器来深入研究它,这让我Texture::usingMipmaps()。 在那里我能够看到这些值及其反映的内容(在反编译的代码中)。

2 = POINT
3 = LINEAR
4 = BILINEAR
5 = TRILINEAR

Where PGraphicsOpenGL的默认值textureSampling is 5(三线性)。

我后来也发现这个关于某个问题的旧评论同样证实了这一点。

因此,要获得点/最近的过滤,您只需调用noSmooth()在应用程序本身上,并调用textureSampling()在你的PGraphics.

size(320, 240, P3D);
noSmooth();

buffer = createGraphics(width/8, height/8, P3D);
((PGraphicsOpenGL) buffer).textureSampling(2);

因此,考虑到上述内容,并且仅包括您用于绘制线条和绘图的代码buffer到应用程序。然后得到以下期望的结果。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用 P3D 渲染器实现 noSmooth()? 的相关文章

  • 如何通过着色器管道传递顶点颜色?

    我试图通过顶点 几何和片段着色器传递顶点颜色 glBegin GL POINTS glVertex3f 2 0f 0 0f 0 0 glColor3f 0 0 1 0 0 0 glVertex3f 2 0f 0 0f 0 0 glColor
  • 尝试 glUseProgram 时出现 Opengl 错误 1281

    我有什么想法可以调试这个opengl进一步错误 1281 我正在从文件加载源代码 编译 链接 然后尝试检查错误glUseProgram 在我的对象的绘制方法中 log info gl2 glIsProgram shaderProgram t
  • 从活动顶点数组生成平滑法线

    我正在尝试通过挂钩 OpenGl 调用来破解和修改旧版 opengl 固定管道游戏的多个渲染功能 而我当前的任务是实现着色器照明 我已经创建了一个适当的着色器程序 可以正确照亮大部分对象 但该游戏的地形是在没有提供正常数据的情况下绘制的 游
  • 3D 图形矩阵 4x4 中最后一行的 magic 4 的用途是什么?

    当我阅读有关WebGL的书时 我看到了下一个矩阵描述 有关于书中最后一行的信息 WebGL 初学者指南 初学者指南 Diego Cantor Brandon Jones 神秘的第四排 第四排没有任何特殊之处 意义 元素 m4 m8 m12
  • OpenGL 将着色器附加到程序

    有没有办法访问附加到程序的着色器 也就是说 给定一个程序 我可以做类似的事情 vertexShader getVertexShaderFromProgram program 我想在验证我的程序的函数中记录着色器编译状态 但我只保留对程序的引
  • 静态链接库时出现 glew 链接器错误

    我正在尝试在 Visual Studio 2012 中构建一个 opengl 项目 我想静态包含 glew 库 因此我从源代码构建它并将生成的 glew32sd lib 复制到我的 lib 目录 我将此 lib 路径提供给 Visual S
  • 为什么在处理.org java pdf 导出时只显示一个框?

    下面是我的代码 在运行时它显示了我想要的多个框 但是当我尝试导出时 它只在该帧位置显示一个框 我尝试在特定帧生成输出 但它有同样的问题 import processing pdf int ofs 500 boolean record voi
  • OpenGL NURBS 曲面

    我正在学习 OpenGL 我想要一个中间有轻微驼峰的表面 我目前正在使用这段代码 但我不确定如何调整 ctrl 点以使其达到我想要的方式 它目前就像 我想要这样的 我不完全确定我应该使用哪些控制点 并且我对其工作原理感到困惑 include
  • 使用圆点填充圆,使用圆边缘的偏置

    这就是我想要实现的目标 到目前为止 我对我拥有的代码感到满意 这是从 Wolfram 和另一个数学来源借来的 但我不知道如何整合一些偏差计算 或者只是一种分配随机但有组织的内容的方法 有人能指出我正确的方向吗 这是我的代码 它将使用 P5
  • 退出 glutFullScreen()

    我不明白为什么当我按 f 时它进入全屏但不退出全屏 在这个方法的开头我已经设置了bool fullscreen false 这是我的切换代码 case f toggle screenmode if fullscreen glutFullSc
  • 纹理openGl。 C++、qt

    我试图用草纹理覆盖我的地形 由高度图制成 但它没有按预期工作 我什至无法在简单的 GL QUAD 上获取纹理 结果是多色网络 void GLWidget initializeGL glEnable GL TEXTURE 2D 在 QGLwi
  • OpenGL 和加载/读取 AoSoA(混合 SoA)格式的数据

    假设我有以下 AoSoA 格式的简化结构来表示顶点或点 struct VertexData float px 4 position x float py 4 position y 也就是说 每个实例VertexData存储4个顶点 我见过的
  • 为什么我的 FPS 相机一劳永逸地滚动?

    如果我忽略四元数代数的肮脏细节 我想我理解了旋转和平移变换背后的数学 但仍然不明白我做错了什么 为什么我的相机一劳永逸地滚动 更具体地说 我应该如何从相机的方向 旋转矩阵 计算相机视图矩阵 我正在用 Python 编写一个简约的 3d 引擎
  • 使用draw()而不是eventloop时的pyglet

    我正在尝试用 pyglet 画一个圆 但当我使用 draw 函数而不是 app run 循环时 它是不可见的 有什么建议我可以做什么吗 谢谢 from math import from pyglet gl import window pyg
  • OpenGL 与 Eclipse CDT + MinGW + GLEW + GLFW:未定义的参考

    Edit 与此同时 我已经弄清楚了这一点 并在下面写了详细的答案 我刚刚尝试在 Win7 上从 Express 版本的 MSVC 10 切换到 Eclipse CDT 在配置时遇到了以下简单 OpenGL 代码的问题 在 Visual St
  • 使用 OpenGL 着色器进行数学计算 (C++)

    我有一个矩阵 例如 100x100 尺寸 我需要对每个元素进行计算 matrix i j tt 8 5例如 我有一个巨大的矩阵 我想使用 OpenGL 着色器来实现该算法 我想使用着色器 例如 uniform float val unifo
  • NV_path_rendering替代方案[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我刚刚观看了 Siggraph 2012 的一个非常令人印象深刻的演示 http nvidia fullviewmedia com sig
  • 如果我用opengl绘图的话SDL Renderer就没用了吗?

    我正在学习 SDL2 但我也在使用使用 OpenGL 调用的 imgui 库 从我在网上各种博客上读到的内容来看 我无法轻松混合 SDL2 渲染器和 opengl 调用 我要么使用其中之一 要么使用另一个 我读过的大多数教程都使用渲染器 所
  • 当 OpenGL 中同时绑定 1D 和 2D 纹理时,正确的行为是什么?

    假设你有这样的东西 glBindTexture GL TEXTURE 2D my2dTex glBindTexture GL TEXTURE 1D my1dTex glBegin 正确的 OpenGL 行为是什么 要绘制一维纹理 二维纹理还
  • 在 GLUT 中使用鼠标滚轮

    我想在 OpenGL GLUT 程序中使用鼠标滚轮来放大和缩小场景 我怎么做 Freeglut 的 glutMouseWheelFunc 回调与版本相关 并且在 X 中不可靠 使用标准鼠标功能并测试按钮 3 和 4 OpenGlut 对 g

随机推荐

  • 如何在每次音量为零时使用 ffmpeg 分割 mp4 视频?

    我需要将一个视频分割成许多较小的视频 我尝试过 PySceneDetect 它的 2 种场景检测方法不符合我的需要 这个想法是在每次音量非常低 每次音频电平小于给定参数时触发场景切换 中断 我认为总体 RMS dB 音量水平就是我的意思 目
  • Java程序:需要YYYY-MM-DD格式的当前日期,而没有日期数据类型的时间[关闭]

    很难说出这里问的是什么 这个问题模棱两可 含糊不清 不完整 过于宽泛或言辞激烈 无法以目前的形式合理回答 如需帮助澄清此问题以便重新打开 访问帮助中心 我只需要 yyyy mm dd 格式的日期 因为 DB2 表的日期列精度为 10 Dat
  • 在 WM_SIZE 之后调整渲染目标 Direct2D 的大小

    快速问一下大家 我目前正在使用 Directx3D 和 2D 我想知道在调整 Windows 大小时是否必须重新创建渲染目标 或者 Direct2D 会自动检测到这一点 因为它绑定到 DXGISurface 交换链 当我创建它时 这是我用来
  • Kafka流处理器线程安全吗?

    我知道这个问题之前在这里被问过 卡夫卡流并发 但这对我来说很奇怪 根据文档 或者也许我遗漏了一些东西 每个分区都有一个任务 意味着不同的处理器实例 并且每个任务都由不同的线程执行 但是当我测试它时 我发现不同的线程可以获得不同的处理器实例
  • 使用 PhantomJS 包含 js 文件

    在 PhantomJS 脚本中 我尝试加载定义数组的本地 JavaScript 文件 var webPage require webpage page webPage create injected page injectJs codes
  • 将 SupportMapFragment 放置在 DialogFragment 上

    我试图在 DialogFragment 上添加 SupportMapFragment 但它返回error inflating class fragment 我不明白为什么它会被退回error inflating class fragment
  • Zend 框架有文件结构的修复版本吗?

    作为 Zend 框架的新手 我对该框架有一些与版本相关的问题 Zend Framework 是否有固定的文件结构 即文件布局的固定形式 如果是这样 这个文件结构是否会根据框架版本而变化 如果是这样 是否有任何参考资料可以了解文件结构的所有差
  • R 中的对数概率图?

    Does anyone know how to create log probability plot like this one in R where the x axis is probability and y axis is in
  • ListFragment 作为 DialogFragment

    是否可以显示ListFragment as Dialog 或者没有办法 我应该实现我自己的ListView empty TextView和不确定的ProgressBar inside DialogFragment myself 另外一个选择
  • 关于“self”关键字

    void Foo void Foo 在该方法中 void Foo 关键字self表示该类的一个实例 但在方法中 void Foo 关键字是什么self意思是 这是否意味着Class self是每个方法的两个隐式参数之一 它是一个指向对象的指
  • 使用 SQLAlchemy 的 sql.func 注册自定义函数

    如何在 sqlalchemy 中应用自定义过滤器 我尝试过 hybrid property 和 hybrid method 然而 他们给出了错误 这是我的代码 class Product db Model tablename product
  • 每天在 Swift 中重置 NSUserDefault 键

    我正在编写一个应用程序 需要每天重置存储在 NSUserDefaults 中的密钥 00 00 时 我已经实现了这一目标 但我使用的方法是一种混乱且不可靠的方法 有没有简单的方法可以实现我的目标 这是代码 extension NSDate
  • WooCommerce 在结帐时使用 Optgroup 选择下拉菜单

    我在用着WordPress 5 0 2 with WooCommerce 3 5 3我在结帐页面上创建了一个选择下拉菜单 效果很好 但是我想在其中添加一些选项组来组织选择选项 这是我的代码函数 php add action woocomme
  • WatchKit 扩展包 ID 不可用

    我已将手表套件应用程序添加到我的 iOS 应用程序中 一切工作正常且运行良好 直到我想在两个应用程序之间共享数据 每当我尝试在手表套件扩展上添加 应用程序组 功能时 它都会告诉我我的捆绑包 ID com myrealappid watchk
  • 虚拟子域:每个用户一个子域

    在我的网站上 我使用虚拟主机 因此我的用户可以拥有虚拟域 如 user1 mydomain com user2 mydomain com 等 问题是 在 user1 domain com 等虚拟域上 索引页面始终与我的索引页面 http m
  • 检测未分配的局部变量的错误(当动态变量影响代码流预测时)

    文档意味着 out 参数在发送到函数之前不需要初始化 只需声明 然而 这段代码 class Program static void Main dynamic p string s if p null T out s System Conso
  • RStudio:使用 roxygen2 构建包。不生成 NAMESPACE 文件

    这是我第一次构建 R 包 并在 devtools 和 roxygen2 的帮助下完成 在 R 目录中编写一个简单的函数并使用 devtools 制作一个说明文件后 我第一次尝试构建并重新加载 但出现错误 gt devtools docume
  • 确定函数返回类型的最简单方法

    给定一个非常简单但冗长的函数 例如 int foo int a int b int c int d return 1 using ReturnTypeOfFoo 确定函数返回类型的最简单和简洁的方法是什么 ReturnTypeOfFoo 在
  • 正在加载 Apple Pay 送货地址 无街道

    我正在尝试从以下地址中提取送货地址ABRecordRef由苹果公司提供 我有以下内容 但我的街道总是返回nil ABMultiValueRef addresses ABRecordCopyValue abRecordRef kABPerso
  • 如何使用 P3D 渲染器实现 noSmooth()?

    我想使用 P3D 渲染器通过 PGraphics 实例渲染基本的 3D 形状 而无需任何锯齿 平滑 但 noSmooth 似乎不起作用 在 OF 我记得打电话给setTextureMinMagFilter GL NEAREST GL NEA