• Content count

  • Joined

  • Last visited

Community Reputation

164 Neutral

About tracegame

  • Rank

Personal Information

  • Interests
  1. 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.
  2. 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.
  3. For 2D Lighting,you can search by google or github.Here is 2 examples And for tutorial,like the link above,,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 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.
  4. 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 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.
  5. Anyone know one thing or two?Or did I post the wrong place.
  6. 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
  7. Thank you for your great help,now I understand. :D
  8. The code below is from book Real-Time Collection Detection ch5.cpp file Some of them I don't know where it come from.   float denom = a*e-b*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*e-b*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*(Q1-P1) and // S2(t)=P2+t*(Q2-P2), 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*e-b*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); }
  9. Proof of Momentum??

    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]
  10. Proof of Momentum??

    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=((m0-m1)*v0+2*m1*v1)/(m0+m1) v1F=((m1-m0)*v0+2*m0*v0)/(m0+m1)   [attachment=31182:momentum_prove.png]
  11. OpenGL Need help with GLSL and Raytrace

    OK,finally read some book talking about this. The book name is Real-Time Collisioin Detection Author:Christer Ericson On Chapter 5.3
  12. 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.
  13. 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
  14. 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.
  15. Hi,everyone. I am new to raytrace.and i found some example from shadertoy. link below 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 &gt; 0.0) { float dis = (-sqrt(g) - b) / a; if(dis &gt; 0.0 &amp;&amp; dis &lt; 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?