• Content count

  • Joined

  • Last visited

Community Reputation

141 Neutral

About rzn

  • Rank
  1. Requesting Constructive Criticism

    Hey,   I'm learning music production atm so am not a pro. Here's what I didn't like: 1) Bell lead. I liked it when it started, but by the end of the composition it sounded too synthetic for me and, well, not very expressive 2) Cello lead. During the parts where the fast triplets are played, all three notes get blurred into, like, one sound. That's cool for a background instrument but not if you want to make it a leading one. 3) Drum sounds. The rhythm is good but there are parts where the lead instruments are silent and you can hear the drums easily, they give the same synthetic impression. 4) Overall mixing and feel. I think there's something wrong with the balance of instruments, the bell sounds a bit too lound vs the other instruments, the lead cello is too quiet.   But yeah, I liked the "both" version the most too.
  2. Hello, I'm new to Lua and during the last week I've delved into the language and the libraries that bind C++ classes and functions to Lua. Right now I'm successfully using tolua++ 1.0.93 with Lua 5.1. Scripts like this work flawlessly: [CODE] c = Class:new() print("LUA: Num is "..c:getNum()) c:setNum(DEFINED_VAR) [/CODE] But this kind of script is not what I need. I want to be able to pass a pointer to Class from inside the C++ code to a Lua function defined in the script and call Class' functions there, effectively manipulating the passed object. I've searched a lot about how it should be done, but I'm still confused. As I'm using tolua I suppose I should use tolua_pushusertype to pass the pointer to the object to Lua. But I cannot understand how can I use the passed object's functions. Tell me please what should I do to get the result I want? Any tips will be appreciated as I'm pretty tired from not being able to solve this problem on my own. -upd- Fixed Lua capitalization, thanks to dmail.
  3. [quote][opinion] The time spent learning how to work with x files is wasted time. Look for a better alternative. [/opinion][/quote] Like what? I've done some research and this is what I've managed to gather: X files are deprecated and are not reliable and they are not to be used for commercial projects. But what should we do? Parse 3ds files manually? Export them to another format and parse it? But then we won't be able to use D3DXLoadMeshHierarchyFromX function and we'll have to do everything ourselves. It seemed easier to stick with DX's functions. What's the correct way of doing these things?!
  4. Hello, I have a problem concerning export of skinned meshes with animation from 3ds max 2012 file to an X file suitable for DirectX 9. I have written a program which is capable of loading a model from an X file and playing it's animations. I've used tiny_4anim.x from SDK up until now and it worked perfectly, that means, I have been able to play each animation in my program. But we needed to add a new model to our project, so now we have another 3ds max model with different animations. But I have no success exporting it to an X file so that I could use it in my program. The most successful attempt was when I could load a model but the animation didn't play. I have also used DXViewer to test my X files and the model loads fine but the animation isn't played, unlike with tiny_4anim.x. The animations are played correctly in 3dsmax itself. What may be the source of this problem? Maybe I should use some specific export settings? I use Pandasoft exporter for 3dsmax. The language I use is C++. Thanks in advance.
  5. [b]ankhd[/b], that's just an another way to do the stuff. But still, thanks for the reply. [b]Evil Steve[/b], of course they are the same! While I had been googling the problem earlier I think I saw you post from long ago about them and checked it immediately. But thanks. Anyway, the problem was solved. Apparently , the guy who wrote the renderer had all the tiles drawn at z = 5 (don't know the reasons and don't really want to know). So everything works like a charm now and I've got a ton of knowledge concerning transformation matrices in DX. Thanks for all replies!
  6. Of course that's not the case. I've done that during my first attempt when I used Pick.cpp's code. And the only thing I got was the source of the ray moving to (-390, -390) instead of (0, 0) on XY plane.
  7. The last line is only to find x and y on the z = 0 plane. And inversing the world isn't needed in my case as I don't use local coordinates at all.
  8. Hello, I'm writing a map editor for a tile-based 2d sidescroller and for a couple of days I've been stuck with a pretty annoying bug related to picking. My viewport has the same size as the client area. The camera is at (0, 0, 300), it has clipping planes at 10 and 400, it's FOV is pi/2. The camera looks at (0, 0, 0) and the upvector is (0, -1, 0). I've tried using different methods of implementing the picking but right now I have one similar to the Pick example from the SDK. Here's how I do the thing: [code] D3DXVECTOR3 z; D3DXMATRIX world, view, proj, m; D3DVIEWPORT9 vp; m_pd3dDevice->GetTransform(D3DTS_VIEW, &view); m_pd3dDevice->GetTransform(D3DTS_PROJECTION, &proj); m_pd3dDevice->GetTransform(D3DTS_WORLD, &world); m_pd3dDevice->GetViewport(&vp); POINT p; GetCursorPos(&p); ScreenToClient(m_hwnd, &p); D3DXVECTOR3 v; v.x = (((2.0f * p.x) / vp.Width) - 1); v.y = -(((2.0f * p.y) / vp.Height) - 1); v.z = 1.0f; v.x /= proj._11; v.y /= proj._22; D3DXMatrixInverse(&m, 0, &view); D3DXVECTOR3 vPickRayDir, vPickRayOrig; vPickRayDir.x = v.x * m._11 + v.y * m._21 + v.z * m._31; vPickRayDir.y = v.x * m._12 + v.y * m._22 + v.z * m._32; vPickRayDir.z = v.x * m._13 + v.y * m._23 + v.z * m._33; vPickRayOrig.x = m._41; vPickRayOrig.y = m._42; vPickRayOrig.z = m._43; vPickRayOrig -= vPickRayDir*(m_cam->GetDistance() / vPickRayDir.z);[/code] The results are: when I click at the center of the client area everything is fine. But the farther I click from the center the more is the difference between my transformed coordinates and where should they be. I.e. when I click somewhere in the upper-right corner of the client area the tile is placed above and to the right of the cursor. I've googled a lot but was unable to find anything that could've helped me. Therefore I ask for your help with this matter.