
Content count
47 
Joined

Last visited
Community Reputation
164 NeutralAbout tracegame

Rank
Member
Personal Information

Interests
Programming

Is FreeImage Library really free of charge on commercial application?
tracegame replied to tracegame's topic in Games Business and Law
Thank you so much for the short version explanation,it means much for me. Also,I checked some other Image Library with MIT licence.And it seems much light weight. https://github.com/nothings/stb 
Is FreeImage Library really free of charge on commercial application?
tracegame posted a topic in Games Business and Law
http://freeimage.sourceforge.net/license.html Not english speaker,so can't really understand what does the licence really mean. First GPL2 and GPL3 are not what I want,I need MIT or something like MIT. Second,they privode a FreeImage Public License (FIPL). It's really really reaaaaaaaaaaaaaally long and make full language extreamly ENGLISH style. Long for short can I use this Library free of charge and not giveup all my source code.Yes or No. I have googled and got no infomation about this,and I did not see any indie game use this library,so I think it is not that free. Not sure so I just need to ask. 
OpenGL Where to start OpenGL for a project like this?
tracegame replied to Robin04's topic in Graphics and GPU Programming
For 2D Lighting,you can search by google or github.Here is 2 examples https://github.com/eXpl0it3r/LTBL https://github.com/eXpl0it3r/LTBL2 And for tutorial,like the link above,learnopengl.com,good tutorial,yet you can always search all kind of beginner tutorial on youtube. C,C++,Java,blahblah Language, SDL,SFML,LWJGL,libgdx,Unity3D,Unreal4...ect, and one tutorial I've seen mixed with SDL and Opengl is this www.youtube.com/playlist?list=PLSPw4ASQYyymu3PfG9gxywSPghnSMiOAW The only problem is it's too fxxking long tutorial,some eposide may have 1 or 2 hours,really need some patience. If you are a busy guy,just check how to setup opengl in sdl,there are other video tutorials show you how to do this,just use youtube, keep searching. And there is nothing to be afraid of learning 3D,some 2D game effect may just use 3D knowledge,like triangle to make some cool 2D effect.And shader. Just find beginner tutorial on youtube,follow it. It's just time problem,you can learn almost every game programing basic knowledge,just keep searching youtube,google,github open source project. And you will get there. 
LF: special effects resources in opengl
tracegame replied to cebugdev's topic in Graphics and GPU Programming
Check youtube for some unity3d game effects tutorial.called visual effects or something,and some tutorial teach you how to make energy shield,cartoon style smoke,then you can write them in dx,opengl,or whatever you use. Visual Case Studies https://www.youtube.com/playlist?list=PLJ4rOFLQFH4C0zPBufgFKMvrHadY6dhm For particle engine,you may want to check some on sale particle plugin presets from unity3d store,magic,rain,lighting,ect,find which kind of FX you like,then get a plugin pay or find some free and check how they written from the source code.And there are open source game engine included particle demo,such as HGE and Urho3D,I have tried to move hge particle in dx11 and unity3d,not some complex thing,just one afternoon you can finish the job. 
3D How to select map zone like Crusadar King 2
tracegame replied to tracegame's topic in Graphics and GPU Programming
Anyone know one thing or two?Or did I post the wrong place. 
3D How to select map zone like Crusadar King 2
tracegame posted a topic in Graphics and GPU Programming
It looks like Crusadar King 2 use bitmap as some kind of mask,and it display it with 3D Terrain. So what's the general idea to write things like this.Bitmap unregular Bitmap selection and 3D Terrain display. If convert it to polygon,some pixel may be very ugly and mess up the shape.If don't use polygon.I don't know how to do the 3D detection of BItmap Checking and 3D display with it. And it also have edge dash line glow effect.How to write those 2D effect and display as 3D effect? Here is the video how it looks like at about 7:22 
Need Explanation With Distance Between Two Segments
tracegame replied to tracegame's topic in Math and Physics
Thank you for your great help,now I understand. :D 
The code below is from book RealTime Collection Detection ch5.cpp file Some of them I don't know where it come from. float denom = a*eb*b; and (b*f  c*e) / denom what does this mean?I know a is square length of d1,e is square length of d2,b is d1 projection on d2, but what does a*eb*b means?where this guy come from,for what reason?any rule or fomular related?? Can somebody point me the direction or something to figure this out.Thanks // Computes closest points C1 and C2 of S1(s)=P1+s*(Q1P1) and // S2(t)=P2+t*(Q2P2), returning s and t. Function result is squared // distance between between S1(s) and S2(t) float ClosestPtSegmentSegment(Point p1, Point q1, Point p2, Point q2, float &s, float &t, Point &c1, Point &c2) { Vector d1 = q1  p1; // Direction vector of segment S1 Vector d2 = q2  p2; // Direction vector of segment S2 Vector r = p1  p2; float a = Dot(d1, d1); // Squared length of segment S1, always nonnegative float e = Dot(d2, d2); // Squared length of segment S2, always nonnegative float f = Dot(d2, r); // Check if either or both segments degenerate into points if (a <= EPSILON && e <= EPSILON) { // Both segments degenerate into points s = t = 0.0f; c1 = p1; c2 = p2; return Dot(c1  c2, c1  c2); } if (a <= EPSILON) { // First segment degenerates into a point s = 0.0f; t = f / e; // s = 0 => t = (b*s + f) / e = f / e t = Clamp(t, 0.0f, 1.0f); } else { float c = Dot(d1, r); if (e <= EPSILON) { // Second segment degenerates into a point t = 0.0f; s = Clamp(c / a, 0.0f, 1.0f); // t = 0 => s = (b*t  c) / a = c / a } else { // The general nondegenerate case starts here float b = Dot(d1, d2); float denom = a*eb*b; // Always nonnegative,======================================Here is the one ====================================== // If segments not parallel, compute closest point on L1 to L2, and // clamp to segment S1. Else pick arbitrary s (here 0) if (denom != 0.0f) { s = Clamp((b*f  c*e) / denom, 0.0f, 1.0f);//======================================Here is the other one ====================================== } else s = 0.0f; // Compute point on L2 closest to S1(s) using // t = Dot((P1+D1*s)P2,D2) / Dot(D2,D2) = (b*s + f) / e t = (b*s + f) / e; // If t in [0,1] done. Else clamp t, recompute s for the new value // of t using s = Dot((P2+D2*t)P1,D1) / Dot(D1,D1)= (t*b  c) / a // and clamp s to [0, 1] if (t < 0.0f) { t = 0.0f; s = Clamp(c / a, 0.0f, 1.0f); } else if (t > 1.0f) { t = 1.0f; s = Clamp((b  c) / a, 0.0f, 1.0f); } } } c1 = p1 + d1 * s; c2 = p2 + d2 * t; return Dot(c1  c2, c1  c2); }

Find a friend to help work this out,i'm really not good at Algebra. Why prove it,because usually i just copy,paste codes without thinking, now i'm trying to do things step by step,and try to figure out why these code work, no more blackbox coding. anyway thanks for the reply,post a few places,just got reply here. [attachment=31191:Momentum.png]

Read a book about physics  Foundation AS3 Animation Making Things Move and there is the equation i can not prove. why (m0 * v0) + (m1 * v1) = (m0 * v0F) + (m1 * v1F) (m0 * v0^2) + (m1 * v1^2) = (m0 * v0F^2) + (m1 * v1F^2) can get v0F=((m0m1)*v0+2*m1*v1)/(m0+m1) v1F=((m1m0)*v0+2*m0*v0)/(m0+m1) [attachment=31182:momentum_prove.png]

OpenGL Need help with GLSL and Raytrace
tracegame replied to tracegame's topic in Graphics and GPU Programming
OK,finally read some book talking about this. The book name is RealTime Collisioin Detection Author:Christer Ericson On Chapter 5.3 
How to do collision like mario with gap dash?
tracegame replied to tracegame's topic in General and Gameplay Programming
Thank you for the infomation and keywords.Really helps. and i came back to post some actually code i searched from github. it's a html mario game with gap dash and some other cool stuff,complete mario 1 clone works on my chrome not firefox,a little strange,but guess may help someone,i will just leave the link. https://github.com/FullScreenShenanigans/FullScreenMario 
How to do collision like mario with gap dash?
tracegame replied to tracegame's topic in General and Gameplay Programming
well,Dash here is really means Run,cause mario does not have a flash burst dash like Mega man. I'm not good at english,gap dash is some word i googled from internet.Maybe it called something else. But i guess you know what i mean if you have played Mario.Run across one tile gap works in every version of mario 
How to do collision like mario with gap dash?
tracegame posted a topic in General and Gameplay Programming
I have written some simple 2D platform game now. and i'd like to write a mario clone myself. problem is how to do a gap dash which means when i am on running mode i can dash foward for one tile gap. If not running,i will walk down the one tile gap,and falling down. I think if i just change the speed,i can not promise to pass the hole tile. cause if i stand some place i still may run exact to the hole positon. Then i think maybe i can large the collision rectangle when i was on running mode by 1 or 2 pixels. which can promise if it is one tile gap,i will not run down,cause i fill the whole collisioin area by enlarging the rectangle. but i am not sure this is a good idea. What's the usual way to do gap dash collison? Want to learn some new and better ideas. 
Hi,everyone. I am new to raytrace.and i found some example from shadertoy. link below https://www.shadertoy.com/view/ld2Gz3 with a little work,i can run this shader in opengl now. my question is there is some equation i do not understand. it is about ray intersect with sphere. here is the code. void intersectSphere(const Sphere sphere, const Ray ray, Material material, inout Output o) { vec3 d = ray.origin  sphere.origin; float a = dot(ray.direction, ray.direction); float b = dot(ray.direction, d); float c = dot(d, d)  sphere.radius * sphere.radius; float g = b*b  a*c; if(g > 0.0) { float dis = (sqrt(g)  b) / a; if(dis > 0.0 && dis < o.dis) { o.dis = dis; o.origin = ray.origin + ray.direction * dis; o.normal = (o.origin  sphere.origin) / sphere.radius; o.material = material; } } } as i know g should equal to b*b  4*a*c; but this code is g = b*b  a*c; and dis should equal to (sqrt(g)  b) / (2*a); but instead it is dis = (sqrt(g)  b) / a; and this code really works. why?what's going on here?