JCPalmer

Members
  • Content count

    1,947
  • Joined

  • Last visited

  • Days Won

    7

JCPalmer last won the day on May 15

JCPalmer had the most liked content!

3 Followers

About JCPalmer

  • Rank
    Advanced Member

Contact Methods

  • Twitter
    whoopstopia

Profile Information

  • Gender
    Male
  • Location
    Rochester, NY
  • Interests
    Power Napping

Recent Profile Visitors

2,239 profile views
  1. Yeah, as soon as you get a performance improvement the next bottleneck shows up. Wondering out loud, could the value of a boundingbox change when it is computematrix is frozen? Morphing? Maybe bake this into freezeWorldMatrix?
  2. Stranded Hair Update

    actually, I figured out why the original scene hung (1/2 a billion console log messages). It looks weird from some angles due to going all white, but zoom looks great from this angle. Number of strands could greatly be reduced. Maybe could use default shader, but is all the white about?
  3. Stranded Hair Update

    Well made an attempt at triangular spaghetti. While it might be obvious to someone that because I was sub-classing LinesMesh, that I would not get filled triangles, but not to me. Also, the point of one strand is connected to the next. Here is a picture of a 2 strand Hair mesh. I made the triangles really "wide", for diagnostic purposes. I tried switching to sub-classing from Mesh with a reasonable wide, no material, and vertex color. It looks promising from a zoom standpoint. Here is the live scene. Performance of the first scene is destroyed. It will not even load, so do not bother right now. Many less strands would be required, and have not done that yet. What I would like to know, it what do I need to do to the color.vertex.shader to get it to draw filled triangles not lines? Do not want to use the default shader. I could get specular with it, but way too slow. The default shader has just so much stuff, finding anything is really tough.
  4. I think you mean manually calling freezeWorldMatrix(). ComputeWorldMatrix ignores force when frozen. freezeWorldMatrix does a compute.
  5. Stranded Hair Update

    @gryff: That is my back up plan. It reminds me of the spay hair product from a long time ago for sparse areas. I saw a woman with it once. It looked like paint. I fear once you breech a certain distance, it is really going to suck. In this setting, the material would be too uniform without a lot of screwing around. Going to give the triangular spaghetti a try. Going back to my original proof of concept scene. No need to complicate things.
  6. Stranded Hair Update

    I guess I wondered what is it being mixed with. Just did some experiments changing the scene clear color. It had no effect. Seems the mix color is white. As far as ribbons, I did not see that ribbons had a width. Even if it did, planes would look weird from different angle. What might work is for every point received, create 3 vertices around it perpendicular to the next vertex. Each strand would like an extruded triangle. Technically, that would multiple the number of vertices by 3, matrix weights & indices, and vertex colors by 3, BUT could probably get away with the number of strands from the 30k (150k vertices). 5K strands are probably good. Since there are no normals with vertex colors, it is going to be hard to see the edges of the triangles. Even if you can, it would just look like more strands. I need another beer. (At least I only would need to change the JS side, since all python passes is the points & list of strand lengths). Time to do a repo commit of this.
  7. Make sure when you initialize you indicate the colors to be updateable, or nothing will happen when you call updateVerticesData()
  8. Stranded Hair Update

    Well, have published a test scene to experiment with hair color. I have a question about what is the color shade , used by LineMesh, supposed to be doing with alpha? Its use can actually give a good effect (try it with platinum blonde), but not knowing what it does makes me nervous. This process seems to be close to working, but have come to the realization that the width of the lines is always the same # of pixels. This means very far away, it can tend to look like shag carpet, due to the head being small. When really close the scalp is very visible. For the very close case, I suppose I could try using an emitted material in areas where you should not see the the skin. Any thoughts?
  9. Sure. Couple things I can see are: when I rotate the mesh, it seems like there are 2. Is that supposed to like that? If the non-moving one is a cape, adding a material to it might make it more easy to see your mesh. Leaving it out might even be better. You added renderloop & resize code. This is required in your code, but the playground takes care of this for you. Makes it easier to demonstrate issues. If you are going to have 1 of these you do not need to use MeshFactory, or even generate one. var face_mesh = new TOB_body_pg.Body("body", scene); The material part, you need someone else to look at.
  10. Hi, I make Tower of Babel exporter, but do not know about pbr. Couple of things: I made a playground template for TOB. You just paste the output file at the bottom of the editor window. When you wish to save it, and you get a too big error. Then you will have to host your TOB export file as well. This is primatives.js in the example. Any loads will fail the first time, when you have 2 dynamic JS scripts, but it is sufficient to use for help. Also, while it is not my bandwidth, you should probably point to your own version of QI, not the one I have I. 1.1 is not quite done, so this might be good for now, but later you will have much better control publishing your own work with a copy you control.
  11. Blow Me, Baby

    I recently made a demo scene for the SIGGRAPH 2017 WebGL conference put on by Khronos in L.A. last week. There were sections other than WebGL, like OpenCL, glTF, Vulkan as well. I understand from Ken Russell that it was shown at the start. A little of a departure from the many test / QA, & development Tool scenes for QI that I have been doing. I have 3 more of those close to done to close out 1.1 release. Always go to do a "real" scene here and there.
  12. BJS-exporter automatic texture baking fails

    ah, I forgot about this. This is not really checking your version of Blender, as the preceding comment says. It is attempting to determine what version of Blender saved the .blend file. Right now the 5.4 exporter refuses to run on a version of Blender less than 2.76, so this check would never get triggered. This check was put in when baking was added. Someone got a really old .blend from BlendSwap, specifically 2.49. Unfortunately, I could not find where you can determine this. Anyway, back then there was either no such window or it had a different name back then. Perhaps, a custom function which detected something else that a UV Editor window had would be better. It could be used for this check as well as internal baking. Found this on the screen class. Perhaps, the UV editor always returns True for use_play_image_editors , like: def findUVEditor(self): for screen in bpy.data.screens: if screen.use_play_image_editors: return screen return None Either way, I do not plan on trying to fix some ancient thing. The way you can fix this is to create a NEW scene, and File->Append the stuff from the old .blend
  13. BJS-exporter automatic texture baking fails

    I do not follow. bVersion is assigned as a result of a call to blenderMajorMinorVersion() from the file package_level.py, shown below: def blenderMajorMinorVersion(): # in form of '2.77 (sub 0)' split1 = app.version_string.partition('.') major = split1[0] split2 = split1[2].partition(' ') minor = split2[0] return float(major + '.' + minor) The "UV Editing" screen is only used for baking procedure textures (noise, Voronoi) from the internal render. Yes, that is not really great, but as far as I could find out there is no "bake" API call like for Cycles
  14. A playground does not have to work to save, as far as I can tell. I am NOT going to look at your zip file. Put up a playground.
  15. Using mesh instances with Babylon GUI

    A BABYLON.InstancedMesh must have a BABYLON.Mesh associated with it. The BABYLON.Mesh.material is used for it as well as all it's InstancedMeshes. Having a unique material for a InstancedMesh is never going to happen. This is nothing to do with an AdvancedTexture. I would say you might save GPU memory using clones, but hardly worth it for basically a plane.