Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Topics - MichaelJPCT

Pages: 1 2 [3] 4
Support / trying to make fake shadow with RTT texture applied to a mesh
« on: August 20, 2016, 05:34:56 pm »
i am trying to make fake shadow. my approach is like this:
stick a transparent mesh on an object3D which should be a shadow receiver, but in fact the transparent mesh is the receiver;
render the shadow caster object into a texture and project the texture onto the transparent mesh;
the RTT should have alpha information - the part covered by shadow caster is opaque and black, other part is fully transparent.

now i wonder how to render into the alpha channel of RTT texture - i want to use openGL hardware framebuffer for the RTT task (faster) so the texture should be directly used in GPU (not downloaded for further process).
is setAsShadowMap() meant for this?

Support / fog formula?
« on: August 18, 2016, 06:53:59 pm »
some parts of my scene are rendered with shader while some are not.
i need to know the formula of fog in GL's fixed function rendering and use it in shader so that all parts in the scene have the same fog effect.
i use these settings on the parts without shader:
setFogParameter(100f,20000f, r,g,b)

Support / get unloadTexture flag?
« on: August 16, 2016, 05:46:43 pm »
i think it's good that TextureManager has a flag indicating whether a texture is loaded/unloaded, if one needs to strictly manage texture memory usage.

Support / alpha channel in image file?
« on: August 14, 2016, 02:12:20 pm »
i have a texture which is supposed to act like a mask - some part see through, some part masked - think of 1-bit alpha.
i tried with setTransparencyMode(0) , the result is close, but in JPCT i have to use black color for the see-through part, which doesn't work for me - i need the see-through part to be blue, because there is a little edge area of the texture still visible.
i tried to use image file with transparency information - transparent png and 32-bit TGA. the png transparency doesn't work and tga can't be loaded.
what else can i try?

Support / is there Z-offset options?
« on: August 14, 2016, 01:07:17 pm »
i couldn't find any.

Feedback / hotspot JVM garbage collection strategy?
« on: August 14, 2016, 08:47:58 am »
in my JPCT app, i use constant framerate(30fps) by adding Thread.sleep at the end of each frame update. as long as the time needed for each frame update doesn't exceed 0.033333 sec, the app runs well.
but if a full gc is performed, a frame will be delayed, and i can't predict when a gc will be performed.
is there any gc mode that does gc "little by little" so every gc doesn't take longer than... say 0.015 sec ?
can gc be performed when my main thread sleeps?

Support / multiple coordinates for texture stages?
« on: August 12, 2016, 10:32:27 am »
i created a heightmap terrain using Object3D(pos,normal,uv,index,textureID) method.
if i want the the terrain to have at least 2 layers of texture tile - one large tile(repeat 4x4) & one smaller tile of noise(repeat 128x128). in what way should i set it up?
should i use shader?

Support / less verbose console info?
« on: August 09, 2016, 08:21:16 am »
i encounter a problem, the console information is too much (such as compiling object3d to VBO), sometimes the latter information fills the console buffer so i can't read the former ones. can i define what information should be printed in the console? (in MS Windows)

Support / questions about render-to-texture
« on: July 10, 2016, 04:43:22 pm »
i am new to RTT, and i am now using FrameBuffer.setRenderTarget() to render into textures. (the FrameBuffer is the same one as the main window)

1) i blit white text into a texture after clearing FB with black color. when the texture is applied to a transparent Object3D, the black part is visible. but i have another texture loaded from a grayscale PNG file, where the black part is invisible. why isn't the RTT texture tranparent?
2) the doc says RTT must not use mipmaping. but if a texture will never be rendered into again after the first time, can it have mipmaping afterwards?
3) if a texture has size of 32x32 while the FB is 1280x800, when rendering into the texture, is the renderer doing work on 32x32 pixels or 1280x800 pixels? i mean the workload, is it small or large.

Support / full screen mask with continuous changing alpha?
« on: July 07, 2016, 07:30:09 am »
i am trying to use Overlay to make a full screen mask. the mask must be able to change alpha from zero to full opacity, continuously.
i applied a black texture with alpha to the Overlay.
i tried different combination of alpha value(Texture) and transparency(Overlay), i just couldn't have it changing continuously.

1) Texture.setAlpha() has no effect on the Overlay, maybe an texture upload per frame is required.
2) i tried Texture.overrideTexelData(), it seemed to work. but it requires texture uploading, it clearly slows down the program.
3) the argument to Overlay.setTransparency() isn't the same thing as alpha, when i tried, 0 resulted in full transparency, 4 resulted in full opacity. and it's in integer, not float.

what else can i try?

Support / suggestion on API, setTranslation, setMatrix, setOrigin
« on: July 06, 2016, 09:23:12 am »
when i want to position an Object3D, if the object has children, i can't use setOrigin(), i must set the translation.
but there is no setTranslation(), there is translate() which requires relative position.
but most of the time i don't directly know how much should i move the object, instead i know the current position of the object. so i call clearTranslation() then translate(), or set the Matrix of the object. in case i just need to position an object at a certain position, i don't need a Matrix, isn't setTranslation() a better method?
and if Object3D has a setMatrix method like this, setMatrix(float[] matrixFloatArray), that can be convenient too.

and some APIs require a SimpleVector as argument, such as setOrigin(SimpleVector vec), why not a method like setOrigin(float x,float y,float z) ?

Support / trying to make an LOD system
« on: July 01, 2016, 10:14:25 am »
i plan to have an LOD system in my graphics module. basically in a class of mine there is an array of Object3D or Mesh, and i can choose which LOD should show up. the problem is , should i use an array of Object3D or Mesh?
i originally planned to use Mesh, and use setMesh() to switch Mesh when i need another LOD. but later i read the forum and saw that UV data were stored in Object3D, not Mesh.

on the other hand, the downside of using array of Object3D, is that:
i have an object tree, each object can have multiple children that inherit its transformation. when i switch LOD, i have to call Object3D.removeParent, Object3D.addParent, world.removeObject, world.addObject... on multiple Object3D's.
Java performance is quite good, and these calls should not cost much, but it just looks like some trouble.
i can also do it without the parent system from JPCT, meaning that i do all transformation in my code, and use setOrigin, setOrientation, setTranslationMatrix etc to position the Object3D's. then i don't need to call removeParent,addParent, but my code for transformation would grow large, that's some trouble too.

is there a simpler way to make an LOD system?

Support / problem regarding Texture blitting
« on: June 12, 2016, 08:34:34 am »
i tried to make a small 2D app on Android with JPCT, mainly using Texture blitting to show a background and text font. (i know this is not a normal way to make 2D app, but my java code can be reused)

i made a desktop version of the app with JPCT without problem, but on Android the text doesn't show. the only difference (in my codes) between desktop version and Android version is BitmapFactory is used to load texture on Android.

my texture for font is sized 2048x32.  the JPCT doc says "If a texture with a different width/height is used, it will be scaled to a width/height of 256 automatically" for desktop version, and "If a texture with a different width/height is used, an error will be raised Textures are managed by the TextureManager." for Android version.
but in my desktop app the fonts show clearly, no evidence of the texture being scaled. in my Android app i don't use TextureManager.
strangely, my app uses a 512x1024 texture for background and it shows clearly on both desktop and Android.

i don't know what makes the Android version fail. the test device has 1GB of ram so ram size shouldn't be the cause.

Projects / is there any DOOM remake or QUAKE remake project with JPCT?
« on: January 10, 2016, 04:49:31 pm »
it would be fun to play these games with newer graphics engine  :)

Support / problem with texture tile
« on: January 05, 2016, 10:18:44 am »
i found texture tile to be not precisely repeating:
i have a plane created by

plane=ExtendedPrimitives.createPlane(4096,20); ExtendedPrimitives.transformUVCoords(plane,0,0,256,256,0,0);
tex.setClamping(0); plane.setTexture(tex); plane.compileAndStrip();;

texture image size is 256x256.
say i look at position (0,0,0) of the plane, i see some part of the texture. then i translate the plane to (4096,0,0), in theory i should see the same texture, but i saw the texture changed. no matter what parameter i put into the transformUVCoords call. i don't know why.

Pages: 1 2 [3] 4