• Advertisement
  • Popular Tags

  • Popular Now

  • Advertisement
  • Similar Content

    • By Fadey Duh
      Good evening everyone!

      I was wondering if there is something equivalent of  GL_NV_blend_equation_advanced for AMD?
      Basically I'm trying to find more compatible version of it.

      Thank you!
    • By Jens Eckervogt
      Hello guys, 
       
      Please tell me! 
      How do I know? Why does wavefront not show for me?
      I already checked I have non errors yet.
      using OpenTK; using System.Collections.Generic; using System.IO; using System.Text; namespace Tutorial_08.net.sourceskyboxer { public class WaveFrontLoader { private static List<Vector3> inPositions; private static List<Vector2> inTexcoords; private static List<Vector3> inNormals; private static List<float> positions; private static List<float> texcoords; private static List<int> indices; public static RawModel LoadObjModel(string filename, Loader loader) { inPositions = new List<Vector3>(); inTexcoords = new List<Vector2>(); inNormals = new List<Vector3>(); positions = new List<float>(); texcoords = new List<float>(); indices = new List<int>(); int nextIdx = 0; using (var reader = new StreamReader(File.Open("Contents/" + filename + ".obj", FileMode.Open), Encoding.UTF8)) { string line = reader.ReadLine(); int i = reader.Read(); while (true) { string[] currentLine = line.Split(); if (currentLine[0] == "v") { Vector3 pos = new Vector3(float.Parse(currentLine[1]), float.Parse(currentLine[2]), float.Parse(currentLine[3])); inPositions.Add(pos); if (currentLine[1] == "t") { Vector2 tex = new Vector2(float.Parse(currentLine[1]), float.Parse(currentLine[2])); inTexcoords.Add(tex); } if (currentLine[1] == "n") { Vector3 nom = new Vector3(float.Parse(currentLine[1]), float.Parse(currentLine[2]), float.Parse(currentLine[3])); inNormals.Add(nom); } } if (currentLine[0] == "f") { Vector3 pos = inPositions[0]; positions.Add(pos.X); positions.Add(pos.Y); positions.Add(pos.Z); Vector2 tc = inTexcoords[0]; texcoords.Add(tc.X); texcoords.Add(tc.Y); indices.Add(nextIdx); ++nextIdx; } reader.Close(); return loader.loadToVAO(positions.ToArray(), texcoords.ToArray(), indices.ToArray()); } } } } } And It have tried other method but it can't show for me.  I am mad now. Because any OpenTK developers won't help me.
      Please help me how do I fix.

      And my download (mega.nz) should it is original but I tried no success...
      - Add blend source and png file here I have tried tried,.....  
       
      PS: Why is our community not active? I wait very longer. Stop to lie me!
      Thanks !
    • By codelyoko373
      I wasn't sure if this would be the right place for a topic like this so sorry if it isn't.
      I'm currently working on a project for Uni using FreeGLUT to make a simple solar system simulation. I've got to the point where I've implemented all the planets and have used a Scene Graph to link them all together. The issue I'm having with now though is basically the planets and moons orbit correctly at their own orbit speeds.
      I'm not really experienced with using matrices for stuff like this so It's likely why I can't figure out how exactly to get it working. This is where I'm applying the transformation matrices, as well as pushing and popping them. This is within the Render function that every planet including the sun and moons will have and run.
      if (tag != "Sun") { glRotatef(orbitAngle, orbitRotation.X, orbitRotation.Y, orbitRotation.Z); } glPushMatrix(); glTranslatef(position.X, position.Y, position.Z); glRotatef(rotationAngle, rotation.X, rotation.Y, rotation.Z); glScalef(scale.X, scale.Y, scale.Z); glDrawElements(GL_TRIANGLES, mesh->indiceCount, GL_UNSIGNED_SHORT, mesh->indices); if (tag != "Sun") { glPopMatrix(); } The "If(tag != "Sun")" parts are my attempts are getting the planets to orbit correctly though it likely isn't the way I'm meant to be doing it. So I was wondering if someone would be able to help me? As I really don't have an idea on what I would do to get it working. Using the if statement is truthfully the closest I've got to it working but there are still weird effects like the planets orbiting faster then they should depending on the number of planets actually be updated/rendered.
    • By Jens Eckervogt
      Hello everyone, 
      I have problem with texture
      using System; using OpenTK; using OpenTK.Input; using OpenTK.Graphics; using OpenTK.Graphics.OpenGL4; using System.Drawing; using System.Reflection; namespace Tutorial_05 { class Game : GameWindow { private static int WIDTH = 1200; private static int HEIGHT = 720; private static KeyboardState keyState; private int vaoID; private int vboID; private int iboID; private Vector3[] vertices = { new Vector3(-0.5f, 0.5f, 0.0f), // V0 new Vector3(-0.5f, -0.5f, 0.0f), // V1 new Vector3(0.5f, -0.5f, 0.0f), // V2 new Vector3(0.5f, 0.5f, 0.0f) // V3 }; private Vector2[] texcoords = { new Vector2(0, 0), new Vector2(0, 1), new Vector2(1, 1), new Vector2(1, 0) }; private int[] indices = { 0, 1, 3, 3, 1, 2 }; private string vertsrc = @"#version 450 core in vec3 position; in vec2 textureCoords; out vec2 pass_textureCoords; void main(void) { gl_Position = vec4(position, 1.0); pass_textureCoords = textureCoords; }"; private string fragsrc = @"#version 450 core in vec2 pass_textureCoords; out vec4 out_color; uniform sampler2D textureSampler; void main(void) { out_color = texture(textureSampler, pass_textureCoords); }"; private int programID; private int vertexShaderID; private int fragmentShaderID; private int textureID; private Bitmap texsrc; public Game() : base(WIDTH, HEIGHT, GraphicsMode.Default, "Tutorial 05 - Texturing", GameWindowFlags.Default, DisplayDevice.Default, 4, 5, GraphicsContextFlags.Default) { } protected override void OnLoad(EventArgs e) { base.OnLoad(e); CursorVisible = true; GL.GenVertexArrays(1, out vaoID); GL.BindVertexArray(vaoID); GL.GenBuffers(1, out vboID); GL.BindBuffer(BufferTarget.ArrayBuffer, vboID); GL.BufferData(BufferTarget.ArrayBuffer, (IntPtr)(vertices.Length * Vector3.SizeInBytes), vertices, BufferUsageHint.StaticDraw); GL.GenBuffers(1, out iboID); GL.BindBuffer(BufferTarget.ElementArrayBuffer, iboID); GL.BufferData(BufferTarget.ElementArrayBuffer, (IntPtr)(indices.Length * sizeof(int)), indices, BufferUsageHint.StaticDraw); vertexShaderID = GL.CreateShader(ShaderType.VertexShader); GL.ShaderSource(vertexShaderID, vertsrc); GL.CompileShader(vertexShaderID); fragmentShaderID = GL.CreateShader(ShaderType.FragmentShader); GL.ShaderSource(fragmentShaderID, fragsrc); GL.CompileShader(fragmentShaderID); programID = GL.CreateProgram(); GL.AttachShader(programID, vertexShaderID); GL.AttachShader(programID, fragmentShaderID); GL.LinkProgram(programID); // Loading texture from embedded resource texsrc = new Bitmap(Assembly.GetEntryAssembly().GetManifestResourceStream("Tutorial_05.example.png")); textureID = GL.GenTexture(); GL.BindTexture(TextureTarget.Texture2D, textureID); GL.TexParameter(TextureTarget.Texture2D, TextureParameterName.TextureMagFilter, (int)All.Linear); GL.TexParameter(TextureTarget.Texture2D, TextureParameterName.TextureMinFilter, (int)All.Linear); GL.TexImage2D(TextureTarget.Texture2D, 0, PixelInternalFormat.Rgba, texsrc.Width, texsrc.Height, 0, PixelFormat.Bgra, PixelType.UnsignedByte, IntPtr.Zero); System.Drawing.Imaging.BitmapData bitmap_data = texsrc.LockBits(new Rectangle(0, 0, texsrc.Width, texsrc.Height), System.Drawing.Imaging.ImageLockMode.ReadOnly, System.Drawing.Imaging.PixelFormat.Format32bppRgb); GL.TexSubImage2D(TextureTarget.Texture2D, 0, 0, 0, texsrc.Width, texsrc.Height, PixelFormat.Bgra, PixelType.UnsignedByte, bitmap_data.Scan0); texsrc.UnlockBits(bitmap_data); GL.Enable(EnableCap.Texture2D); GL.BufferData(BufferTarget.TextureBuffer, (IntPtr)(texcoords.Length * Vector2.SizeInBytes), texcoords, BufferUsageHint.StaticDraw); GL.BindAttribLocation(programID, 0, "position"); GL.BindAttribLocation(programID, 1, "textureCoords"); } protected override void OnResize(EventArgs e) { base.OnResize(e); GL.Viewport(0, 0, ClientRectangle.Width, ClientRectangle.Height); } protected override void OnUpdateFrame(FrameEventArgs e) { base.OnUpdateFrame(e); keyState = Keyboard.GetState(); if (keyState.IsKeyDown(Key.Escape)) { Exit(); } } protected override void OnRenderFrame(FrameEventArgs e) { base.OnRenderFrame(e); // Prepare for background GL.Clear(ClearBufferMask.ColorBufferBit); GL.ClearColor(Color4.Red); // Draw traingles GL.EnableVertexAttribArray(0); GL.EnableVertexAttribArray(1); GL.BindVertexArray(vaoID); GL.UseProgram(programID); GL.BindBuffer(BufferTarget.ArrayBuffer, vboID); GL.VertexAttribPointer(0, 3, VertexAttribPointerType.Float, false, 0, IntPtr.Zero); GL.ActiveTexture(TextureUnit.Texture0); GL.BindTexture(TextureTarget.Texture3D, textureID); GL.BindBuffer(BufferTarget.ElementArrayBuffer, iboID); GL.DrawElements(BeginMode.Triangles, indices.Length, DrawElementsType.UnsignedInt, 0); GL.DisableVertexAttribArray(0); GL.DisableVertexAttribArray(1); SwapBuffers(); } protected override void OnClosed(EventArgs e) { base.OnClosed(e); GL.DeleteVertexArray(vaoID); GL.DeleteBuffer(vboID); } } } I can not remember where do I add GL.Uniform2();
    • By Jens Eckervogt
      Hello everyone
      For @80bserver8 nice job - I have found Google search. How did you port from Javascript WebGL to C# OpenTK.?
      I have been searched Google but it shows f***ing Unity 3D. I really want know how do I understand I want start with OpenTK But I want know where is porting of Javascript and C#?
       
      Thanks!
  • Advertisement
  • Advertisement

Archived

This topic is now archived and is closed to further replies.

OpenGL Alternatives to MESA for Linux OpenGL

This topic is 6115 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

Hi all. Getting ready to start working on OpenGL in Linux again. But I need a decent OpenGL 1.2 library if it exists Don''t even say Mesa. lol. After the fiasco I saw when trying to compile the Windows library(which they do not provide pre-compiled versions of) and was confronted with typo errors in their code which prevented it from compiling. And then once I fixed their typos I saw the rest of the mess. Somewhere around 15,000 compiler warnings on compile. Then finally more errors and I deleted it all. How can anybody release such a thing and call it stable? lol. Well... I guess it can''t be too unstable if it never runs... But it would probably be pretty hard to convince me to ever use software written that way even though it is primarily aimed at Linux I''m sure. If you''re going to try and make something cross-platform you normally make sure that it WORKS on the different platforms. Being able to compile it is certainly a prerequisite to working Are there any other choices? I will be looking around but in the meantime maybe somebody can point me in the right direction Thanks, Krippy

Share this post


Link to post
Share on other sites
Advertisement
Mesa is great.
It is ported to many OSes and compilers so certainly can some port have errors. On linux is it a part of the OpenGL implementation but the others ports are mostly for interested and experinced programmers.

SGI has released the source to their OpenGL sample but I do not think that this is what you are looking for. If you are using a nvidia card so will you use their OpenGL libraries and not Mesa. A rpm with the SGI GLU 1.3 can be downloaded from the Mesa site to be used together with the nvidia libraries.

Share this post


Link to post
Share on other sites
Hi. Thanks for the response

Yeah I think I will just have to give up my beef with Mesa and try it on Linux again. I have asked around alot of professionals and although I have come up with some alternatives none seem to fully support OpenGL 1.2 and the ones that come close have problems that force software rendering even when hardware support is available.

I am using NVidia drivers but I do not want to place that restriction on the final product.

Seeya
Krippy

Share this post


Link to post
Share on other sites
Guest Anonymous Poster
I never had any problems with mesa.... shure... cumpiling it is a litle bit tricky but doing it the right way works GREAT!

may be all those typo errors weren''t really typo errors, just another thing missing out there...

try looking up for the correct way of doing it...

Share this post


Link to post
Share on other sites
Krippy2k, I think that you missunderstood me.
If you are using nvidias OpenGL implementation do you not use Mesa at all. They are calling it "driver download" but it is really complete OpenGL libraries except for GLU. The package even has modified OpenGL headers so you do not have to include glext for extensions. This is still standard so something built with that package should also run on any other linux machine with Mesa or other standard OpenGL 1.2 implementation. Perhaps with the exception for static linked extensions but nvidia also supports glxGetProcAddress or whatever it was called.

Get the SGI GLU rpm from the Mesa site for the latest 1.3 GLU. Both GLU and OpenGL for linux is in higher versions than in MS OpenGL for Windows.

Share this post


Link to post
Share on other sites
Obelix thanks for setting me straight. lol. I will try it.

--
Anon they were either typos or somebody changed one part of their code and didn''t bother to update the dependencies.

One for instance was accessing a member variable of a structure. The member of the structure was (I forget the name of the structure now I''ll just call it struc) struc.height and they were trying to access it with struc.Height. If there was something missing it was the Height variable out of the structure. lol. Maybe not an actual typo but if not it means they updated one thing and did not bother to update the other = scary when you''re dealing with lots of similar variable names. Things could easily get mixed up and cause a chemical meltdown. lol

They provide Win32 make files for NMAKE and that is how I compiled it.

There is no documentation that I can find on the ''correct'' way to compile it with MSVC, so I assumed the NMAKE files which are in the WIN32 folder is the correct way.

I was using the 3.4.2 ''Stable release''. I am now downloading the 3.5 developer release. I am interested in seeing if they fixed that problem yet or if they just release theoretically working code instead of proven working code.

Seeya
Krippy

Share this post


Link to post
Share on other sites
The Mesa implementation is tricky, it''s sometimes slow...but it''s free.

Share this post


Link to post
Share on other sites
Guest Anonymous Poster
I don''t like Mesa. There were way to much people that had their fingers in there, the whole lib is a monster, a mess in the source, and slow. btw: there is no ''right'' way to compile it. The readme tells about the nmake way, but you can''t compile it that way (compile errors). Just as Krippy I had to fix typo''s, vital functions were commented out, several different source files had the same function name declared multiple times (with different function bodies !!) and so on. The compiled lib never worked. I will never use Mesa again, if you can call that ''use''. The NVidia drivers are very good, I think more 3D board manufacturers should write there own Linux drivers (esp. ATI). Even if they are scared about doing it for Linux, and even if they are unstable, it can''t possibly get worse than Mesa.

-JL

Share this post


Link to post
Share on other sites

  • Advertisement