#jogamp @ irc.freenode.net - 20141105 05:06:26 (UTC)


20141105 05:06:26 -jogamp- Previous @ http://jogamp.org/log/irc/jogamp_20141104050626.html
20141105 05:06:26 -jogamp- This channel is logged @ http://jogamp.org/log/irc/jogamp_20141105050626.html
20141105 07:29:36 * monsieur_max (~maxime@anon) has joined #jogamp
20141105 07:38:24 * eclesia (~husky@anon) has joined #jogamp
20141105 07:38:30 <eclesia> good morning
20141105 07:42:00 * darkfrog (~mhicks@anon) Quit (Ping timeout: 260 seconds)
20141105 07:43:52 * darkfrog (~mhicks@anon) has joined #jogamp
20141105 08:33:10 * hija (~hija@anon) Quit (Quit: hija)
20141105 08:36:07 * jk4 (~jk4@anon) Quit (Ping timeout: 245 seconds)
20141105 08:39:25 * jk4 (~jk4@anon) has joined #jogamp
20141105 09:41:49 * hija (~hija@anon) has joined #jogamp
20141105 11:18:44 * jvanek (jvanek@anon) has joined #jogamp
20141105 11:58:57 * hija (~hija@anon) Quit (Quit: hija)
20141105 12:05:20 * hija (~hija@anon) has joined #jogamp
20141105 12:11:03 * hija (~hija@anon) Quit (Quit: hija)
20141105 14:43:57 * doev (~doev@anon) has joined #jogamp
20141105 15:11:53 * doev (~doev@anon) Quit (Ping timeout: 264 seconds)
20141105 15:38:43 * rmk0 scatters caltrops
20141105 16:00:35 <eclesia> caltrops ?
20141105 16:01:10 <rmk0> i recommend not stepping on them
20141105 16:04:58 * jvanek (jvanek@anon) Quit (Ping timeout: 256 seconds)
20141105 16:06:29 * eclesia (~husky@anon) has left #jogamp
20141105 16:26:09 * jvanek (jvanek@anon) has joined #jogamp
20141105 16:27:26 * doev (~doev@anon) has joined #jogamp
20141105 16:56:38 * monsieur_max (~maxime@anon) Quit (Quit: Leaving.)
20141105 17:46:29 * [Mike] (~Mike]@anon) Quit ()
20141105 17:47:43 * monsieur_max (~maxime@anon) has joined #jogamp
20141105 17:55:40 * doev (~doev@anon) Quit (Ping timeout: 260 seconds)
20141105 17:55:53 * jvanek (jvanek@anon) Quit (Quit: Leaving)
20141105 18:34:17 * [Mike] (~Mike]@anon) has joined #jogamp
20141105 18:49:38 * pyBlob (~chatzilla@anon) has joined #jogamp
20141105 18:51:17 <pyBlob> no matter what I do, I can't upload anything neither images nor buffers to the graphics card
20141105 18:51:37 <pyBlob> when the kernel accesses the data it only sees 0
20141105 18:52:04 <pyBlob> however getting data from the kernel works perfect
20141105 19:25:55 <pyBlob> wow ... damn buffer position stuff monsters =)
20141105 19:26:34 <pyBlob> setting buf.position(0) before AND after update resolves the problem
20141105 20:04:52 * zzuegg (~zzuegg@anon) Quit (Ping timeout: 265 seconds)
20141105 20:10:12 * zzuegg (~zzuegg@anon) has joined #jogamp
20141105 20:27:27 * monsieur_max (~maxime@anon) Quit (Quit: Leaving.)
20141105 20:27:44 <rmk0> pyBlob: am in the habit of only ever using the absolute put and get methods to avoid that stuff
20141105 20:27:57 * monsieur_max (~maxime@anon) has joined #jogamp
20141105 20:28:02 <rmk0> think ByteBuffer and friends are overengineered, frankly
20141105 20:28:35 <pyBlob> yeah ... at least it works now =)
20141105 21:20:12 * [Mike] (~Mike]@anon) Quit ()
20141105 21:30:01 * Eclesia (~eclesia@anon) has joined #jogamp
20141105 21:31:38 <Eclesia> good evening, for those still alive
20141105 21:32:02 * rmk0 steps on sharp metal object
20141105 21:32:05 <rmk0> what idiot left this here?
20141105 21:32:32 <Eclesia> starts by an R
20141105 21:33:21 <Eclesia> it's peacefull these days on the chan
20141105 21:35:47 <rmk0> sgothel is baby-occupied
20141105 21:36:27 <rmk0> http://waste.io7m.com/2014/11/05/refraction_fxaa.mp4
20141105 21:36:38 <rmk0> some "generic refraction"
20141105 21:40:11 <Eclesia> sweet. let me guess. first phase render the scene without the mesh with reflection. then applied somekind of noise effect/distorsion and a last phase render the translucent mesh mixing the color with the distorded texture
20141105 21:40:34 <rmk0> not quite
20141105 21:41:05 <rmk0> well... sort of not quite
20141105 21:41:27 <rmk0> before rendering anything with a refractive material, blit a copy of the current color buffer to a temporary framebuffer
20141105 21:41:38 <rmk0> then render the mesh, using that image as a refraction source
20141105 21:42:12 <rmk0> i don't do any mixing, the darkening and specular highlights are just another translucent object rendered after
20141105 21:42:52 <rmk0> it's http://http.developer.nvidia.com/GPUGems2/gpugems2_chapter19.html
20141105 21:43:11 <rmk0> but with a "most recent copy" of the scene image, rather than just using the back buffer
20141105 21:43:25 <rmk0> means refractive objects can overlap each other correctly
20141105 21:44:13 <rmk0> i render a mask before drawing the object as well
20141105 21:44:29 <rmk0> otherwise opaque objects that overlap the refractive object will bleed into the image
20141105 21:44:39 <Eclesia> so there is a 1 frame delay, like in infinite camera screens which should the scene with the screne in it etc...
20141105 21:44:47 <Eclesia> which show*
20141105 21:44:49 <rmk0> nope
20141105 21:44:58 <rmk0> the technique they describe does have that delay
20141105 21:47:51 * Eclesia has nothing new to show, worked on parser api and blender format those last days
20141105 21:48:14 * Eclesia and .x format
20141105 21:48:21 <rmk0> this isn't really new, just been rampaging trying to get all of this renderer documented
20141105 21:48:29 <rmk0> want to be done with it by the end of the year
20141105 21:51:28 <Eclesia> I would like to make my engine work as expected on all GL4 gpu. but had some bugs with mac osx, radeon, windows8 ... such a pain
20141105 21:52:11 <Eclesia> and still this blending issue, can't figure out what is wrong ...
20141105 21:53:59 <rmk0> i forget... is it a core context?
20141105 21:54:20 <Eclesia> core context ?
20141105 21:54:30 <rmk0> not a compatibility context
20141105 21:54:40 <rmk0> like...
20141105 21:54:48 <rmk0> version string: 3.3 (Core Profile) Mesa 10.3.0
20141105 21:54:58 <rmk0> as opposed to
20141105 21:54:59 <rmk0> version string: 3.0 Mesa 10.3.0
20141105 21:55:25 <rmk0> which GLProfile do you ask for?
20141105 21:56:33 <Eclesia> none in particular just : GLProfile.getDefault(); which return the highest
20141105 21:56:51 <rmk0> it'll return the highest, but that won't necessarily be a core context
20141105 21:57:08 <rmk0> and i'd put money on the core contexts of most drivers being a lot less buggy than the compatibility ones
20141105 21:57:18 <rmk0> i've had issues on AMD drivers magically vanish when using a core context
20141105 21:57:32 <rmk0> would try asking.. GLProfile.get(GLProfile.GL4)
20141105 21:58:17 <Eclesia> ok, I will try, thanks
20141105 21:59:21 <Eclesia> Is it possible to know in advance if a profile is available ? this way I could popup a error message to the user
20141105 21:59:29 <Eclesia> an*
20141105 21:59:54 <Eclesia> or just I just try/catch ?
20141105 21:59:55 <rmk0> GLProfile.isAvailable()
20141105 22:00:15 <rmk0> jogl probes them all lazily on initialization
20141105 22:01:49 <Eclesia> Core profile means the gpu handle it in hardware ? no software emulation ?
20141105 22:02:12 <rmk0> well if you remember, back when 3.0 came out, it deprecated all of the old obsolete stuff
20141105 22:02:18 <rmk0> fixed function pipeline, etc
20141105 22:02:31 <rmk0> the core profile is the part that wasn't deprecated
20141105 22:02:52 <rmk0> should be no emulation of features, no
20141105 22:05:07 <Eclesia> I really started with opengl 4 so I don't know the history
20141105 22:09:11 <rmk0> i think they've sort of made the same mistake with 4.* as they did with 2.1
20141105 22:09:16 <rmk0> just... accumulated crap
20141105 22:09:40 <rmk0> no way to know which of the hundreds of ways to do things will reach the fast path in the driver, and no way to get maximum performance without extensions
20141105 22:09:45 <rmk0> they need to start over from scratch
20141105 22:09:57 <rmk0> 4.5 is pretty enormous
20141105 22:10:04 <rmk0> no idea where i'd start if i had to learn it all from scratch
20141105 22:10:51 <rmk0> right now the popular advice seems to be to smash everything into one massive vertex buffer object and never change bindings
20141105 22:11:04 <rmk0> that to me sounds like brain damage
20141105 22:11:12 <rmk0> like... "there's no way i should have to do this with a sane api"
20141105 22:11:22 <rmk0> i'm certainly not going to, no matter what the performance yield is
20141105 22:12:20 <Eclesia> hehe
20141105 22:13:10 <Eclesia> I just try using the core profil, but know I have errors when I do : final GL2 gl2 = gl.getGL2();
20141105 22:13:22 <Eclesia> now*
20141105 22:13:24 <rmk0> yeah, it won't let you do that
20141105 22:13:29 <Eclesia> (sorry for my english)
20141105 22:13:32 <rmk0> GL2 contains all of the fixed function pipeline
20141105 22:14:50 <rmk0> this.. may be the point where you realize you're depending on deprecated features
20141105 22:15:48 <Eclesia> I use GL2 because I need glBindFramebuffer, which is GL2+ so I have choose the lowest version which has it
20141105 22:16:33 <rmk0> that's not quite how the profiles work
20141105 22:16:54 <rmk0> i mean, er
20141105 22:17:15 <rmk0> you can't really ask for the lowest profile that contains a function, because a GL4 profile doesn't imply GL2 will be available
20141105 22:17:39 <rmk0> there's a diagram here somewhere of the profile relationships
20141105 22:17:54 <Eclesia> heritage you mean
20141105 22:17:58 <rmk0> http://jogamp.org/jogl/doc/uml/html/
20141105 22:18:38 <rmk0> you might want GL2ES2 or GL3ES3
20141105 22:18:49 <Eclesia> yes I remember this diagram
20141105 22:22:11 <Eclesia> ha, GL4 does not extend GL2 but it extends GL2ES2
20141105 22:22:29 <rmk0> yeah, because GL2 contains the entirety of opengl 2.1
20141105 22:22:32 <Eclesia> GL2ES2 isn't a subset of GL2 ?
20141105 22:22:44 <rmk0> it's the common subset of GL2 and ES2
20141105 22:23:29 <rmk0> it's not very intuitive, but the way things are organized is right in practice
20141105 22:24:04 <Eclesia> ok, so I should avoid GL2,GL3bc and GL4bc which still reference the fixed funtions if I use the core profil
20141105 22:24:16 <rmk0> yep
20141105 22:24:37 <rmk0> GL2ES2 and GL3ES3 should be safe to use, given what you're targeting
20141105 22:24:38 <Eclesia> asking for a GL2ES2 will work ?
20141105 22:25:03 <rmk0> it... should!
20141105 22:25:22 <rmk0> i don't want to give a definite yes, because i don't use GL4, but i'm almost certain
20141105 22:26:45 <rmk0> given that you know you're running on GL4... why is it you're asking for older GL interfaces?
20141105 22:29:08 * monsieur_max (~maxime@anon) Quit (Quit: Leaving.)
20141105 22:29:15 <Eclesia> rmk0: it's a generic class, FBO,VBO,IBO. they can be used on various versions so I try to always use lowest version.
20141105 22:29:24 <rmk0> right, assumed it'd be that
20141105 22:29:43 <rmk0> GL2ES2 is most likely right, then
20141105 22:29:55 <Eclesia> and I add a comment in the doc : OpenGL constraints : GL2
20141105 22:30:24 <rmk0> not sure if you care about ES2 compatibility, but it has some obnoxious differences
20141105 22:31:01 <rmk0> i wouldn't assume that a bit of opengl code will run on ES2 just because you ask for a compatible subset interface
20141105 22:31:31 <rmk0> glBindFramebuffer(...) for example...
20141105 22:32:03 <rmk0> in ES2, only GL_FRAMEBUFFER exists
20141105 22:32:16 <rmk0> whereas everything newer has GL_DRAW_FRAMEBUFFER and GL_READ_FRAMEBUFFER
20141105 22:32:47 <rmk0> the type system won't stop you passing in GL_READ_FRAMEBUFFER, but ES2 will raise an error at runtime with that
20141105 22:32:55 <rmk0> and so on
20141105 22:33:09 <rmk0> they basically picked stuff they didn't like and threw it out, in a not-entirely-compatible way
20141105 22:33:48 <rmk0> i stopped caring about ES2
20141105 22:35:30 * Eclesia has a lot of exceptions popping, invalid enum etc...
20141105 22:35:37 <rmk0> \o/
20141105 22:36:32 <Eclesia> looks like I wasn't doing things right ^^
20141105 22:36:43 <Eclesia> yet he didn't complain
20141105 22:42:26 <Eclesia> thanks again rmk0, good night ++
20141105 22:42:29 <rmk0> byeee!
20141105 22:42:43 * Eclesia (~eclesia@anon) Quit (Quit: Leaving.)
20141105 23:19:18 * [Mike] (~Mike]@anon) has joined #jogamp
20141105 23:33:59 * phao (~phao@anon) has joined #jogamp
20141105 23:34:00 <phao> Hi.
20141105 23:34:04 <phao> I don't mean to start a war in here
20141105 23:34:06 <phao> but...
20141105 23:34:24 <phao> how much inadequate Java is for high end graphics game dev?
20141105 23:34:47 <phao> I've always heard the performance won't be much good because of the GC and because the programmer doesn't have much control over memory
20141105 23:34:51 <phao> but ... idk really
20141106 00:22:25 <pyBlob> well, when you don't make garbage ... nothing has to be collected ^^
20141106 00:22:50 <phao> Is that a practical way to program in Java?
20141106 00:23:20 <phao> btw
20141106 00:23:29 <phao> I'm not on a mission to build a high end game... this is mostly for curiosity.
20141106 00:29:16 <pyBlob> actually it's a practical way in any language, because making garbage (allocating memory too often) also eats performance
20141106 00:29:29 <phao> ok.
20141106 00:29:42 <phao> What about caches pyBlob ?
20141106 00:30:12 <phao> Making efficient use of caches in Java.
20141106 00:30:28 * rmk0 (~rmk0@anon) Quit (Ping timeout: 260 seconds)
20141106 00:32:05 * kermyt (~kermyt@anon) has joined #jogamp
20141106 00:33:24 <pyBlob> you don't have too much control over caches ... but there are tools to view and profile the jit-compiled bytecode
20141106 00:35:42 <phao> Right... I did java programming
20141106 00:35:47 <phao> but nothing high performance
20141106 00:39:09 <pyBlob> I have only lurked into hpc, what's amazing is that operations on raw types like int[] work veery fast even in java
20141106 00:39:42 <pyBlob> one shortcoming however is that you can't use raw types in generics
20141106 00:42:03 <phao> RIght...
20141106 00:46:52 * rmk0 (~rmk0@anon) has joined #jogamp
20141106 00:46:52 * rmk0 (~rmk0@anon) Quit (Changing host)
20141106 00:46:52 * rmk0 (~rmk0@anon) has joined #jogamp
20141106 02:04:09 * pyBlob (~chatzilla@anon) Quit (Quit: ChatZilla 0.9.91 [Firefox 36.0a1/20141104030202])
20141106 02:15:17 * [Mike] (~Mike]@anon) Quit ()
20141106 03:39:49 * kermyt (~kermyt@anon) Quit (Ping timeout: 272 seconds)
20141106 03:45:21 * kermyt (~kermyt@anon) has joined #jogamp
20141106 03:55:37 * kermyt (~kermyt@anon) Quit (Ping timeout: 265 seconds)
20141106 04:02:57 * kermyt (~kermyt@anon) has joined #jogamp
20141106 04:07:38 * kermyt (~kermyt@anon) Quit (Ping timeout: 258 seconds)
20141106 04:14:53 * kermyt (~kermyt@anon) has joined #jogamp
20141106 04:23:22 * kermyt (~kermyt@anon) Quit (Ping timeout: 240 seconds)
20141106 04:24:54 * kermyt (~kermyt@anon) has joined #jogamp
20141106 04:46:52 * kermyt (~kermyt@anon) Quit (Ping timeout: 240 seconds)
20141106 05:03:28 * [Mike] (~Mike]@anon) has joined #jogamp
20141106 05:06:26 -jogamp- Continue @ http://jogamp.org/log/irc/jogamp_20141106050626.html