Jump to content
  • Advertisement

Kjell Andersson

Member
  • Content Count

    147
  • Joined

  • Last visited

Community Reputation

657 Good

About Kjell Andersson

  • Rank
    Member

Personal Information

  • Interests
    Business
    Programming

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. Kjell Andersson

    Design Genifect 2.0 OpenFX plugin

    Genifect 2.0 OpenFX plugin has been released by Dual Heights Software. New in 2.0 is the Materialized Bevel filter which creates bevel and lighting effects for texts and symbols. Using MatCap textures you can create advanced and realistic lighting effects on 2D-text and logos to make it look like it was made out of gold, copper or any other material that you can find a MatCap texture for on the Internet. Genifect is an OpenFX plugin that works with the major compositing software for video and animation including Nuke, DaVinci Resolve/Fusion, Vegas Pro and Natron to name a few. Visit the official Genifect page to learn more: https://www.dualheights.se/genifect/ View full story
  2. Kjell Andersson

    Design Genifect 2.0 OpenFX plugin

    Genifect 2.0 OpenFX plugin has been released by Dual Heights Software. New in 2.0 is the Materialized Bevel filter which creates bevel and lighting effects for texts and symbols. Using MatCap textures you can create advanced and realistic lighting effects on 2D-text and logos to make it look like it was made out of gold, copper or any other material that you can find a MatCap texture for on the Internet. Genifect is an OpenFX plugin that works with the major compositing software for video and animation including Nuke, DaVinci Resolve/Fusion, Vegas Pro and Natron to name a few. Visit the official Genifect page to learn more: https://www.dualheights.se/genifect/
  3. Kjell Andersson

    Caustics Generator 5.0 Available

    Spectral rendering enters the computer graphics world. After a period with not that many feature improvements, Dual Heights Software have now finally released a new major version of their water texture generator software called Caustics Generator. The new version includes full spectrum color rendering allowing the simulation of spectral refraction which produces prismatic coloring effects and thus bringing caustics simulation to a new level. The spectral functionality is available in the Pro version on both Windows, Mac and Linux. Read more about the Caustics Generator at https://www.dualheights.se/caustics/
  4. Kjell Andersson

    Caustics Generator 5.0 Available

    Spectral rendering enters the computer graphics world. After a period with not that many feature improvements, Dual Heights Software have now finally released a new major version of their water texture generator software called Caustics Generator. The new version includes full spectrum color rendering allowing the simulation of spectral refraction which produces prismatic coloring effects and thus bringing caustics simulation to a new level. The spectral functionality is available in the Pro version on both Windows, Mac and Linux. Read more about the Caustics Generator at https://www.dualheights.se/caustics/ View full story
  5. Kjell Andersson

    Blooming OpenFX plugin

    For those doing promotional videos for their games we have released a video plugin that allows you to add glow, aka blooming, as a post effect in your video pipeline. The plugin is an OpenFX plugin that works in video editing software such as Nuke, Catalyst Edit, Natron or any other OpenFX compatible host software. The blooming filter allows you to set the threshold intensities that you want affected by the glow. You can also color tint the glow or make it anisotropic for stretched glow effects typically used for really bright intensity light streaks. Sample of an image before the blooming effect is applied: Image after blooming has been applied: You can find out more about this plugin on the Genifect OpenFX plugin suite page.
  6. Kjell Andersson

    3D Model Coding Question - DX11

    The Autodesk FBX SDK is a widely used toolkit for loading models and playback of animations. The SDK is generic and can be tied to whatever 3D API you want to use (OpenGL, DirectX etc) in the sence that it loads and animates the mesh and when it is finished you have to transfer the computed mesh vertices to your favorite 3D API. The SDK contains examples on how to use the SDK but if I recall it only contains the glue towards OpenGL. That can be translated over to DirectX quite easily though since you are just dealing with simple vertices and material properties.
  7. Kjell Andersson

    OpenGL legacy to shader mapping

    Thank you Zao, you saved my day! You gave the exact answer I was looking for. I had my doubts about interoperability between legacy and modern OpenGL, and you confirmed it. It is however as you say, the texture coordinate was to be found at position 8 when I tested it, but since this may be NVIDIA specific I have to find a way around it.
  8. I'm trying to get some legacy OpenGL code to run with a shader pipeline, The legacy code uses glVertexPointer(), glColorPointer(), glNormalPointer() and glTexCoordPointer() to supply the vertex information. I know that it should be using setVertexAttribPointer() etc to clearly define the layout but that is not an option right now since the legacy code can't be modified to that extent. I've got a version 330 vertex shader to somewhat work: #version 330 uniform mat4 osg_ModelViewProjectionMatrix; uniform mat4 osg_ModelViewMatrix; layout(location = 0) in vec4 Vertex; layout(location = 2) in vec4 Normal; // Velocity layout(location = 3) in vec3 TexCoord; // TODO: is this the right layout location? out VertexData { vec4 color; vec3 velocity; float size; } VertexOut; void main(void) { vec4 p0 = Vertex; vec4 p1 = Vertex + vec4(Normal.x, Normal.y, Normal.z, 0.0f); vec3 velocity = (osg_ModelViewProjectionMatrix * p1 - osg_ModelViewProjectionMatrix * p0).xyz; VertexOut.velocity = velocity; VertexOut.size = TexCoord.y; gl_Position = osg_ModelViewMatrix * Vertex; } What works is the Vertex and Normal information that the legacy C++ OpenGL code seem to provide in layout location 0 and 2. This is fine. What I'm not getting to work is the TexCoord information that is supplied by a glTexCoordPointer() call in C++. Question: What layout location is the old standard pipeline using for glTexCoordPointer()? Or is this undefined? Side note: I'm trying to get an OpenSceneGraph 3.4.0 particle system to use custom vertex, geometry and fragment shaders for rendering the particles.
  9. Kjell Andersson

    Personal Dance VR

    It's time for a game release again. This time it's going on Steam GreenLight (for as long as it's still available).   This is quite a different type of game in that it's not actually a game per se but more of an amusement experience for virtual reality that is playing with the feeling of personal connection. It's a virtual dance floor where you get to dance with virtual characters to your favourite music. I guarantee you that your dance partner will notice your presence!   Check it out on Steam: http://steamcommunity.com/sharedfiles/filedetails/?id=864584902      
  10. Kjell Andersson

    Text Rendering In D3D11/12

    If you want to go all-in for a good implementation of text rendering you should look up the concept of "Signed Distance Field Text Rendering".   The original article that introduced the concept was written by Valve and can be found here: http://www.valvesoftware.com/publications/2007/SIGGRAPH2007_AlphaTestedMagnification.pdf
  11. Kjell Andersson

    Caustics Generator for Mac OS X

    The Caustics Generator is now also available in a Free version for all you Mac hobby developers.
  12. Kjell Andersson

    Help me decide - shadow under hood/cowl or not?

    I like the one with the eyes more. It gives the character more personality.   You could go half way and keep a small shadow instead of going all black.
  13. Kjell Andersson

    Caustics Generator for Mac OS X

    Caustics Generator is now available for Mac OS X. This is the first release on the Mac platform of the software and has been longed for by the graphical artists and designers that love to work on their Mac. The Caustics Generator software allows artists to create faked water lighting by generating pre-calculated caustics textures that seamlessly tile and animate. These texture can be used for both real-time graphics such as games and simulations but are also very popular by the architect, movie and advertising industry as part of the rendering pipeline for creating computer graphics visualizations. The Caustics Generator software has previously only been available for Windows and Linux, but this release meets many artists on their choice of computer. More information about the Caustics Generator can be found at: https://www.dualheights.se/caustics  
  14. Kjell Andersson

    Exporting mesh vertex group to text.

    The following code provides you with vertices and face indices from a D3DXMesh. You will have to write the code that saves it to file yourself, but that should be easy. LPD3DXMESH m_pD3DMesh; void MeshXWrapper::GetMeshData(int *pMeshVertexCount, dVector3 **ppMeshVertices, int *pMeshIndexCount, int **ppMeshIndices) { LPDIRECT3DVERTEXBUFFER9 pVB = NULL; m_pD3DMesh->GetVertexBuffer(&pVB); struct MY_FVF { float x; float y; float z; }; void *pbVertexData; if (SUCCEEDED(pVB->Lock(0, 0, &pbVertexData, D3DLOCK_READONLY))) { DWORD numBytesPerVertex = m_pD3DMesh->GetNumBytesPerVertex(); int numVertices = m_pD3DMesh->GetNumVertices(); *ppMeshVertices = new dVector3[numVertices]; unsigned char *pVBDataPos = (unsigned char*)pbVertexData; for (int i=0; i < numVertices; i++) { (*ppMeshVertices)[i][0] = ((MY_FVF*)pVBDataPos)->x; (*ppMeshVertices)[i][1] = ((MY_FVF*)pVBDataPos)->y; (*ppMeshVertices)[i][2] = ((MY_FVF*)pVBDataPos)->z; (*ppMeshVertices)[i][3] = 0; pVBDataPos += numBytesPerVertex; } pVB->Unlock(); *pMeshVertexCount = m_pD3DMesh->GetNumVertices(); } // Index buffer LPDIRECT3DINDEXBUFFER9 pIB; m_pD3DMesh->GetIndexBuffer(&pIB); D3DINDEXBUFFER_DESC indexDesc; pIB->GetDesc(&indexDesc); LPVOID pbIndexData; if (SUCCEEDED(m_pD3DMesh->LockIndexBuffer(D3DLOCK_READONLY, &pbIndexData))) { *pMeshIndexCount = indexDesc.Size / sizeof(unsigned short); *ppMeshIndices = new int[*pMeshIndexCount]; for (int i=0; i<(*pMeshIndexCount)/3; i++) { unsigned short i0 = ((unsigned short*)pbIndexData)[i*3+0]; unsigned short i1 = ((unsigned short*)pbIndexData)[i*3+1]; unsigned short i2 = ((unsigned short*)pbIndexData)[i*3+2]; (*ppMeshIndices)[i*3+0] = i0; (*ppMeshIndices)[i*3+1] = i1; (*ppMeshIndices)[i*3+2] = i2; } m_pD3DMesh->UnlockIndexBuffer(); } pIB->Release(); pVB->Release(); }
  15. Kjell Andersson

    IOTD broken

    Oh, forgot to mention that it was the IOTD game I meant. Silly me. But it seems to be working now again so it's all right.
  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

GameDev.net is your game development community. Create an account for your GameDev Portfolio and participate in the largest developer community in the games industry.

Sign me up!