opengl

OpenGL ignores Quads and makes them Triangles

只谈情不闲聊 提交于 2020-12-21 02:46:00
问题 This is the second time I'm making a game engine, but I'm a little stuck right now, since I cannot figure out why this is happening, no matter what object I send, OpenGL only draws a White Triangle on the center of the screen, like this. I've even coppied my old code from my last engine on the Renderer and the Camera Objects, still acts the same, so I´m guessing it has something to do with the Render Script. Renderer: Renderer2D::Renderer2D(const Shader& shader) { this->shader = shader; this-

一个程序员如何快速赚到一百万?

孤街浪徒 提交于 2020-12-19 03:39:39
一个程序员如何快速赚到一百万,说的详细点儿就是: 一个固定工作者怎么跳出固有的模式,靠其他途径(投资、理财、生意、创意、外包等)赚得相对殷实的钞票? 80% 人都会问这种赚钱问题,但这种问题却太难回答,因为太难有个可标准化的模式去效仿或借鉴。 这个时代,赚钱不难,赚 100 万也不难,难的是要具备且能勤奋的执行的能够持续创 造财富的思想方法:观察事物 - 分析分解事物 - 得出解决方案,且把每一个步骤一步一步“写”下来并踏踏实实实施,这个方法最笨,但是她是最踏实的,有了这个,钱是迟早的事儿。 好的思想方法宛如一个能源源不断生长出参天大树的生态系统, 这种感觉是绿油油、清清爽爽的。 作为一个程序员,如何赚到一百万呢? 转行 从码农到农民的芋头哥:3个月卖出20万斤 程序员转型书商 年交易额千万元 武汉小伙给手机贴膜3年赚2套房 最多1个月挣3万 IT男卖肉夹馍走红 朋友圈发《我为什么要辞职去卖肉夹馍》 和程序员有关的转行: 揭秘微信灰色产业链:3人团队月赚500万 揭秘那些女性站是如何月赚几百万的 废话少说,言归正传。 树立正确的财富观念 ,既然本文的主题是程序员,那么当然首推阮一峰翻译的 《黑客与画家》 ,至于作者的大名,我怕说出来把你们吓到,就不说了。(其实是我没有记住),放一章关于财富的思维导图: 如何创造财富: 图片来自segmentfault 另一本对我影响对大的书就是

Drawing with openTK, save to file, show on screen

只愿长相守 提交于 2020-12-15 05:24:40
问题 I am drawing multiple images over earh map, I am using perspective correct texturing link on each image. I want to store rendered image in to file (sorce file is 1280x760, the rendered images is around 160x90 in most cases rotated). Currently I am doing this with GL.ReadPixels int width = 1920; int height = 1080; using (Bitmap bitmap = new Bitmap(width, height)) { System.Drawing.Imaging.BitmapData bits = bitmap.LockBits(new Rectangle(0, 0, width, height), System.Drawing.Imaging.ImageLockMode

LWJGL 3.1.6 OpenGL 4.1 crash on macOS High Sierra

送分小仙女□ 提交于 2020-12-13 04:49:49
问题 I have a slightly modified version of the sample code found on the main LWJGL page. It works but it uses legacy OpenGL version 2.1 . If I attempt to use the forward-compatible context described in GLFW doc, the version used is 4.1 (no matter what major/minor I hint), the window is created, but it crashes on the first call to glPushMatrix() . Forward compatibility enabled like so: glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 3); glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 2); glfwWindowHint(GLFW

LWJGL 3.1.6 OpenGL 4.1 crash on macOS High Sierra

独自空忆成欢 提交于 2020-12-13 04:49:07
问题 I have a slightly modified version of the sample code found on the main LWJGL page. It works but it uses legacy OpenGL version 2.1 . If I attempt to use the forward-compatible context described in GLFW doc, the version used is 4.1 (no matter what major/minor I hint), the window is created, but it crashes on the first call to glPushMatrix() . Forward compatibility enabled like so: glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 3); glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 2); glfwWindowHint(GLFW

OpenGL学习(六)纹理与obj格式模型的读取

不羁的心 提交于 2020-12-12 13:11:17
目录 前言 纹理映射 纹理坐标 映射到简单正方形 读取图像 生成正方形数据 生成纹理 着色器贴纹理 读取obj文件 obj文件格式 编写readObj函数进行读取 渲染一张桌子 完整代码 c++ 顶点着色器 片元着色器 前言 上一篇博客回顾: OpenGL学习(五)相机变换,透视投影与FPS相机 在上一篇博客中,我们利用相机变换矩阵,对场景进行透视投影,同时我们实现了可以自由飞翔的 FPS 相机。 迄今为止我们的渲染都是非常单调并且过时的,今天我们来引入一些现代化的东西,来丰富我们的场景。 首先我们会利用一张图片生成纹理,随后我们将这张图片贴在我们的物体上。这就像现代计算机游戏中,我们可以让艺术家们人为的制定一些图片,而不是由程序员大费周章的生成它。 在最后我们通过读取 obj 格式的模型并且创建对应的纹理,来绘制一些精美的模型。 ⚠ 该部分的绘制代码基于上一篇博客: OpenGL学习(五)相机变换,透视投影与FPS相机 博客内容因为篇幅关系,不会完整的列出所有的代码 完整代码会放在文章末尾 纹理映射 在正式开始之前,我们需要了解纹理映射的知识。在计算机游戏中,我们往往见到很多精美的模型,比如下图的水果摊,就有很多个🍎。 通过模型实际上还原这些🍎的几何细节是非常困难的。而且我们还要确定他们的颜色,这更加是难上加难。 于是我们想出了一个曲线救国的方式:我们将一张图片贴上去

Is it possible to declare a shader variable as both input and output?

喜夏-厌秋 提交于 2020-12-12 02:07:30
问题 I'm using both a vertex shader and a geometry shader. My vertex shader does nothing more than forward its input to the geometry shader. #version 330 core layout (location = 0) in uint xy; layout (location = 1) in uint znt; out uint out_xy; out uint out_znt; void main() { out_xy = xy; out_znt = znt; } Is it possible to declare xy and znt as both an input and an output, so that I don't need to rename them? 回答1: You cannot "declare" them that way, but you can use interface blocks, which can give

Shader - Calculate depth relative to Object

◇◆丶佛笑我妖孽 提交于 2020-12-08 04:47:46
问题 I am trying to calculate depth relative to the object . Here is a good solution to retrieve depth relative to camera : Depth as distance to camera plane in GLSL varying float distToCamera; void main() { vec4 cs_position = glModelViewMatrix * gl_Vertex; distToCamera = -cs_position.z; gl_Position = gl_ProjectionMatrix * cs_position; } With this example the depth is relative to the camera . But I would like get the depth relative to the object. I would like the same depth and value if I am near

Three.js

会有一股神秘感。 提交于 2020-12-06 19:53:22
随着人们对用户体验越来越重视,Web开发已经不满足于2D效果的实现,而把目标放到了更加炫酷的3D效果上。 Three.js是用于实现web端3D效果的JS库,它的出现让3D应用开发更简单,本文将通过Three.js的介绍及示例带我们走进3D的奇妙世界。 一、Three.js相关概念 1.1 Three.JS Three.JS是基于WebGL的Javascript开源框架,简言之,就是能够实现3D效果的JS库。 1.2 WebGL WebGL是一种Javascript的3D图形接口,把JavaScript和OpenGL ES 2.0结合在一起。 1.3 OpenGL OpenGL是开放式图形标准,跨编程语言、跨平台,Javascript、Java 、C、C++ 、 python 等都能支持OpenGL ,OpenGL的Javascript实现就是WebGL,另外很多CAD制图软件都采用这种标准。OpenGL ES 2.0是OpenGL的子集,针对手机、游戏主机等嵌入式设备而设计。 1.4 Canvas Canvas是HTML5的画布元素,在使用Canvas时,需要用到Canvas的上下文,可以用2D上下文绘制二维的图像,也可以使用3D上下文绘制三维的图像,其中3D上下文就是指WebGL。 二、Three.js应用场景 利用Three.JS可以制作出很多酷炫的3D动画, 并且Three

Texture arrays in OpenGL

淺唱寂寞╮ 提交于 2020-12-06 19:44:23
问题 I am working on a project and I need to use texture arrays to apply textures. I have asked many questions about this, none of which I got an answer I was completely satisfied with (Get access to later versions of GLSL , OpenGL: Access Array Texture in GLSL , and OpenGL: How would I implement texture arrays?) so I'm asking a more broad question to hopefully get a response. Anyways, How would I texture an object in OpenGL (PyOpenGL more specifically, but it's fine if you put your answer in C++)