Jump to content

Josh

Staff
  • Posts

    23,353
  • Joined

  • Last visited

Everything posted by Josh

  1. Josh

    Relay

    I'm not interested in making a visual programming language. If that's what people wanted, they would be using the C4 Engine: Once you start writing a real program with such a system, it quickly becomes unmanageable. People might say they want this, but that is because they have no idea how complex the actual result would be. You end up with something neither artists nor programmers understand. Instead, I am interested in a system to connect objects to control interactions using predefined functions. The code that makes things happen is in script, and the visual tool lets the level designer control sequences of events.
  2. Josh

    Totally Tubular

    Today I implemented the last two compound primitives. Tubes are the same as in 3D World Studio, with parameters for the number of segments and thickness. Since the Leadwerks3D editor supports smooth groups, another new compound primitive has been added. A torus is a "donut" shape. These can be used to make curved pipes and other things. Here are the two compound primitives, side by side: Smooth groups and new primitives in Leadwerks3D allow you to create new kinds of geometry which were traditionally not possible with CSG editing: An interesting case occurs when a torus' cross-sectional radius exceeds the radius of the ring. At this point the shape folds in on itself, eventually degenerating into a sphere. To prevent this from occurring, the creation function automatically adjusts the cross-sectional radius, as shown in the image below:
  3. Josh

    Plugins

    Not in particular, the workflow in the editor is way too specialized for that. It isn't like you just click a toolbar to select with the mouse, click another to rotate, click another to translate. That kind of behavior is easier to program, but we care most about making a really easy to use editing workflow with a minimum number of mouse clicks.
  4. Josh

    Plugins

    One of the coolest aspects of Leadwerks Engine has been the ability it gives shader authors to implement new effects. On that note, how do you see a formal plugin system for Leadwerks3D working? I am thinking a number of hooks will be available in the engine, on both a per-entity and system wide basis. A plugin class will look something like this: class Plugin { std::multimap<int,void*> hooks } The Plugin object can be created in a DLL or other library, and retrieved. Then the engine will have a function like this: RegisterPlugin(Plugin* plugin) And all the hooks in the hooks multi-map will be added to the engine. Is there a way this could be architected so that the plugin can access the same instance of the Leadwerks3D command set? Any ideas there?
  5. Since brushes in Leadwerks3D are entities, and the Leadwerks3D editor gives you access to the entity hierarchy throughout a scene, we don't use "groups" like 3D World Studio had. Instead, when a compound brush is created, a parent pivot is created, and all brush segments are made a child of that. When you select any part of the hierarchy, the entire compound brush is selected (unless "Ignore Hierarchy" is turned on). Since brushes can now have a 4x4 matrix, which wasn't the case in the past, my code for editing has to be a little more advanced. I was initially having some trouble getting this working with my first compound primitive, the arch shape: However, I think it's all good now. You can see the smooth groups working across multiple subobjects, to give the arch interior a smooth curved surface: You can also see how the scene tree displays every object in the scene, allowing you to select multiple objects at once.
  6. Josh

    Snow Day

    The last day of the season was today, so I was at North Star. We had a storm for the last three days, so the snow was pretty good, just sticky in some places. Even though it was a Sunday, crowds were not bad. Towards the end of the day, most people were hanging out at the lodge and the runs were completely empty. All in all, it was a pretty awesome day.
  7. All appears fine now. If you experience it again please post here or email support, if you can't post.
  8. Josh

    Smooth Move

    Yes, it will be quite interesting to see CSG levels on mobile, as these have traditionally been the realm of AAA games. It seems like mobile technology has finally caught up to where we need it to be.
  9. Josh

    Smooth Move

    Smoothing groups are one of the most frequently requested features for 3D World Studio, so I am happy to show you their implementation in Leadwerks3D, finally. Smoothing groups are usually stored as a bitwise flag. When two faces share a vertex at a certain position, if they have one or more smoothing groups in common, their vertex normal is calculated as if they are sharing a vertex. I first attempted to write an algorithm based on edges, which worked great for cylinders but failed for geometry that had faces that influence vertex normals they are not connected to by an edge. I wrote another routine, which uses an n*n*n loop (big programming no-no, but sometimes it's necessary) and got good results with cylinders and spheres. Cones are a difficult case, and if you don't believe me, just crack out a cone in your favorite 3D modeling app and inspect the tip. I got around this problem by adding a max smoothing angle member to the brush class, which allows the smoothing algorithm to discard faces that are too 'different' from the one being processed. Here's the result: In order to make shapes like arches appear smoothed, the smoothing algorithm has to span multiple objects. This will be accomplished by first grabbing all the brushes in the nearby vicinity to the brush being processed, and then searching for vertices that occupy the same position, on faces that have a smoothing group in common. In the past, we've seen some pretty advanced modeling done with 3D World Studio, but the lack of smoothing groups always limited it. It will be awesome to see what people come up with, when those limits are removed and they can model exactly what they want.
  10. That seems a little complex, when you can just do stuff like this: stateSys.break = false stateSys.CamSwitching = true
  11. The 3D World Studio documentation pops up when you hit the F1 key in the program.
  12. If you make the password long enough they can't be broken in a reasonable amount of time.
  13. I think they will run from a passworded zip, but the main app has to be given the password through code somehow.
  14. http://www.leadwerks.com/werkspace/page/Documentation/le2/_/user-guide/
  15. Probably not:http://luadec51.luaforge.net
  16. In Leadwerks3D, Lua will also be an easier route because you don't have to mess around with different projects and compilers, especially for mobile platforms.
  17. Josh

    Leadwerks Gets Balls

    I was thinking of having a cylinder and a bend option, but maybe one of the interns can implement a torus like that, too. I can already tell people will use this for some fairly complex modeling.
  18. Have you messages wchris yet? He'd probably now better than anyone. http://www.leadwerks.com/werkspace/user/44-wchris/
  19. Try this: http://www.leadwerks.com/werkspace/page/Documentation/le2/_/command-reference/framework/setreflectionelements-r215
  20. I don't think this is a driver issue. I do recommend you set cullface to 1. You may be unknowingly looking at a back face and expecting it to cast a shadow, maybe.
  21. You do not need to purchase UU3D. We provide converters in the Tools folder for many formats.
  22. The problem is with polygonal geometry, the physical geometry has nothing to do with the visible geometry. With BSP geometry, the physical geometry always equals the visible geometry, so that makes things a bit simpler.
  23. The subject of spheres in 3D World Studio has been one of great levity (see here and here) around the Leadwerks community. I spent today finally implementing a CSG sphere primitive. This is a little different from creating a conventional triangle mesh sphere because each face is a single polygon with either three or four sides. Here's my scratch paper that got me through this process: I'll spare you the mathematics and get right to the good stuff: This completes the basic primitives, which include boxes, cylinders, cones, wedges, and now spheres. Tomorrow I will get started on compound primitives (arch and tube) as well as smoothing groups. Let the hilarities ensue in the comments below.
  24. We need the scene to test, please.
×
×
  • Create New...