| .. | .. |
|---|
| 1819 | 1819 | |
|---|
| 1820 | 1820 | display.modelParams7[0] = 0; |
|---|
| 1821 | 1821 | display.modelParams7[1] = 1000; |
|---|
| 1822 | | - display.modelParams7[2] = 0; |
|---|
| 1822 | + display.modelParams7[2] = material.parallax; |
|---|
| 1823 | 1823 | display.modelParams7[3] = 0; |
|---|
| 1824 | 1824 | |
|---|
| 1825 | 1825 | //display.modelParams6[0] = 100; // criss de bug de bump |
|---|
| .. | .. |
|---|
| 12593 | 12593 | "PARAM params4 = program.env[4];" + // anisoV, cameralight, selfshadow, shadow |
|---|
| 12594 | 12594 | "PARAM params5 = program.env[5];" + // texture, opacity, fakedepth, shadowbias |
|---|
| 12595 | 12595 | "PARAM params6 = program.env[6];" + // bump, noise, borderfade, fog punchthrough |
|---|
| 12596 | | - "PARAM params7 = program.env[7];" + // noise power, opacity power |
|---|
| 12596 | + "PARAM params7 = program.env[7];" + // noise power, opacity power, parallax |
|---|
| 12597 | 12597 | "PARAM options0 = program.env[63];" + // fog density, intensity, elevation |
|---|
| 12598 | 12598 | "PARAM options1 = program.env[62];" + // fog rgb color |
|---|
| 12599 | 12599 | "PARAM options2 = program.env[61];" + // image intensity, subsurface, lightsheen |
|---|
| .. | .. |
|---|
| 12838 | 12838 | "POW texSamp.a, texSamp.a, params6.w;" + // fog punch through shortcut |
|---|
| 12839 | 12839 | // mar 2013 ??? "KIL alpha.a;" + |
|---|
| 12840 | 12840 | "MOV alpha, texSamp.aaaa;" + // y;" + |
|---|
| 12841 | | - "KIL alpha.a;" + |
|---|
| 12841 | + "KIL alpha.a;" + // not sure with parallax mapping |
|---|
| 12842 | 12842 | /* |
|---|
| 12843 | 12843 | "MUL temp.xy, temp, two;" + |
|---|
| 12844 | 12844 | "TXB bump, temp, texture[0], 2D;" + |
|---|
| .. | .. |
|---|
| 12924 | 12924 | "SUB bump0, bump0, half;" + |
|---|
| 12925 | 12925 | "ADD bump, bump, bump0;" + |
|---|
| 12926 | 12926 | |
|---|
| 12927 | | - "MOV temp.x, texSamp.a;" + |
|---|
| 12928 | | - "LRP texSamp, params5.x, texSamp, one;" + // texture proportion |
|---|
| 12929 | | - //"LRP texSamp0, params5.x, texSamp0, one;" + |
|---|
| 12930 | | - "MOV texSamp.a, temp.x;" + |
|---|
| 12931 | | - |
|---|
| 12932 | 12927 | // double-sided |
|---|
| 12933 | 12928 | /**/ |
|---|
| 12934 | 12929 | (doublesided?"DP3 temp.z, normal, eye;" + |
|---|
| .. | .. |
|---|
| 12958 | 12953 | Normalize("U") + |
|---|
| 12959 | 12954 | |
|---|
| 12960 | 12955 | // parallax mapping |
|---|
| 12956 | + |
|---|
| 12957 | + "DP3 temp2.x, V, eye;" + |
|---|
| 12958 | + "DP3 temp2.y, U, eye;" + |
|---|
| 12959 | + "DP3 temp2.z, normal, eye;" + |
|---|
| 12960 | + "RCP temp2.z, temp2.z;" + |
|---|
| 12961 | + |
|---|
| 12962 | + "DP3 temp2.w, texSamp, texSamp;" + // Height |
|---|
| 12963 | + "RSQ temp2.w, temp2.w;" + |
|---|
| 12964 | + "RCP temp2.w, temp2.w;" + |
|---|
| 12965 | + |
|---|
| 12966 | + "SUB temp2.w, temp2.w, half;" + |
|---|
| 12967 | +// "SGE temp.x, temp2.w, eps.x;" + |
|---|
| 12968 | +// "MUL temp2.w, temp2.w, temp.x;" + |
|---|
| 12969 | + |
|---|
| 12970 | + //"MOV texSamp, U;" + |
|---|
| 12971 | + |
|---|
| 12972 | + "MUL temp2.z, temp2.z, temp2.w;" + |
|---|
| 12973 | + "MUL temp2.z, temp2.z, params7.z;" + // parallax |
|---|
| 12974 | + |
|---|
| 12975 | + "MUL temp2, temp2, temp2.z;" + |
|---|
| 12976 | + |
|---|
| 12977 | + "MOV temp, fragment.texcoord[0];" + |
|---|
| 12978 | + |
|---|
| 12979 | + "SUB temp, temp, temp2;" + |
|---|
| 12980 | + |
|---|
| 12981 | + "TEX texSamp, temp, texture[0], 2D;" + |
|---|
| 12982 | + "POW texSamp.a, texSamp.a, params6.w;" + // punch through |
|---|
| 12983 | + "MOV alpha, texSamp.aaaa;" + |
|---|
| 12984 | + |
|---|
| 12985 | +// parallax mapping |
|---|
| 12986 | + |
|---|
| 12987 | + "MOV temp.x, texSamp.a;" + |
|---|
| 12988 | + "LRP texSamp, params5.x, texSamp, one;" + // texture proportion |
|---|
| 12989 | + //"LRP texSamp0, params5.x, texSamp0, one;" + |
|---|
| 12990 | + "MOV texSamp.a, temp.x;" + |
|---|
| 12961 | 12991 | |
|---|
| 12962 | 12992 | //"MOV temp, fragment.texcoord[0];" + |
|---|
| 12963 | 12993 | // |
|---|
| .. | .. |
|---|
| 13739 | 13769 | /*static*/ float[] modelParams4 = new float[]{0, 0, 0, 0}; // anisoV, cameralight, selfshadow, shadow |
|---|
| 13740 | 13770 | /*static*/ float[] modelParams5 = new float[]{0, 0, 0, 0}; // texture, opacity, fakedepth, shadowbias |
|---|
| 13741 | 13771 | /*static*/ float[] modelParams6 = new float[]{0, 0, 0, 0}; // bump, noise, borderfade, fog punchthrough |
|---|
| 13742 | | - /*static*/ float[] modelParams7 = new float[]{0, 0, 0, 0}; // noise power, opacity power |
|---|
| 13772 | + /*static*/ float[] modelParams7 = new float[]{0, 0, 0, 0}; // noise power, opacity power, parallax |
|---|
| 13743 | 13773 | |
|---|
| 13744 | 13774 | //Object3D.cVector2[] vector2buffer; |
|---|
| 13745 | 13775 | |
|---|
| .. | .. |
|---|
| 936 | 936 | cGridBag currenttab; |
|---|
| 937 | 937 | //boolean added; // patch for jar |
|---|
| 938 | 938 | |
|---|
| 939 | + int totalcount = 0; |
|---|
| 940 | + |
|---|
| 939 | 941 | int tabcount = 0; |
|---|
| 940 | 942 | int colcount = 0; |
|---|
| 941 | 943 | int rowcount = 0; |
|---|
| .. | .. |
|---|
| 974 | 976 | } |
|---|
| 975 | 977 | |
|---|
| 976 | 978 | AddTextureButton(path[0], path[1], path[2], ++texturecount, currenttab); |
|---|
| 979 | + totalcount++; |
|---|
| 977 | 980 | |
|---|
| 978 | 981 | if (++colcount >= columns) |
|---|
| 979 | 982 | { |
|---|
| .. | .. |
|---|
| 999 | 1002 | container.add(resourcecontainer); |
|---|
| 1000 | 1003 | |
|---|
| 1001 | 1004 | Grafreed.ParseResources("textures", this); |
|---|
| 1005 | + |
|---|
| 1006 | + // 935. System.out.println("Total = " + totalcount); |
|---|
| 1002 | 1007 | } |
|---|
| 1003 | 1008 | |
|---|
| 1004 | 1009 | void SetupUI2(ObjEditor oe) |
|---|
| .. | .. |
|---|
| 2682 | 2682 | backlit.add(backlitField = new cNumberSlider(this, 0.001, 50, -1)); // , aConstraints); |
|---|
| 2683 | 2683 | colorSection.add(backlit); |
|---|
| 2684 | 2684 | |
|---|
| 2685 | + cGridBag parallax = new cGridBag(); |
|---|
| 2686 | + parallax.add(parallaxLabel = new JLabel("Parallax")); // , aConstraints); |
|---|
| 2687 | + parallaxLabel.setHorizontalAlignment(SwingConstants.TRAILING); |
|---|
| 2688 | + parallax.add(parallaxField = new cNumberSlider(this, 0.001, 0.5, -0.25)); // , aConstraints); |
|---|
| 2689 | + colorSection.add(parallax); |
|---|
| 2690 | + |
|---|
| 2685 | 2691 | //panel.add(new JSeparator()); |
|---|
| 2686 | 2692 | |
|---|
| 2687 | 2693 | //panel.add(globalSection); |
|---|
| .. | .. |
|---|
| 3733 | 3739 | shadowField.setFloat(mat.shadow); |
|---|
| 3734 | 3740 | textureField.setFloat(mat.texture); |
|---|
| 3735 | 3741 | opacityField.setFloat(mat.opacity); |
|---|
| 3742 | + parallaxField.setFloat(mat.parallax + 0.25f); |
|---|
| 3736 | 3743 | fakedepthField.setFloat(mat.fakedepth); |
|---|
| 3737 | 3744 | shadowbiasField.setFloat(mat.shadowbias); |
|---|
| 3738 | 3745 | bumpField.setInteger(1); // dec 2013 |
|---|
| .. | .. |
|---|
| 4957 | 4964 | current.shadow = (float) shadowField.getFloat(); |
|---|
| 4958 | 4965 | current.texture = (float) textureField.getFloat(); |
|---|
| 4959 | 4966 | current.opacity = (float) opacityField.getFloat(); |
|---|
| 4967 | + current.parallax = (float) parallaxField.getFloat() - 0.25f; |
|---|
| 4960 | 4968 | current.fakedepth = (float) fakedepthField.getFloat(); |
|---|
| 4961 | 4969 | current.shadowbias = (float) shadowbiasField.getFloat(); |
|---|
| 4962 | 4970 | |
|---|
| .. | .. |
|---|
| 5011 | 5019 | textureField.SetToolTipValue((mat.texture)); |
|---|
| 5012 | 5020 | if (!Equal(opacityField.getFloat(), mat.opacity)) |
|---|
| 5013 | 5021 | opacityField.SetToolTipValue((mat.opacity)); |
|---|
| 5022 | + //if (!Equal(parallaxField.getFloat(), mat.parallax)) |
|---|
| 5023 | + parallaxField.SetToolTipValue((mat.parallax)); |
|---|
| 5014 | 5024 | if (!Equal(fakedepthField.getFloat(), mat.fakedepth)) |
|---|
| 5015 | 5025 | fakedepthField.SetToolTipValue((mat.fakedepth)); |
|---|
| 5016 | 5026 | if (!Equal(shadowbiasField.getFloat(), mat.shadowbias)) |
|---|
| .. | .. |
|---|
| 6267 | 6277 | cNumberSlider textureField; |
|---|
| 6268 | 6278 | JLabel opacityLabel; |
|---|
| 6269 | 6279 | cNumberSlider opacityField; |
|---|
| 6280 | + JLabel parallaxLabel; |
|---|
| 6281 | + cNumberSlider parallaxField; |
|---|
| 6270 | 6282 | JLabel fakedepthLabel; |
|---|
| 6271 | 6283 | cNumberSlider fakedepthField; |
|---|
| 6272 | 6284 | JLabel shadowbiasLabel; |
|---|
| .. | .. |
|---|
| 34 | 34 | shadow = val; |
|---|
| 35 | 35 | texture = val; |
|---|
| 36 | 36 | opacity = val; |
|---|
| 37 | + parallax = val; |
|---|
| 37 | 38 | fakedepth = val; |
|---|
| 38 | 39 | shadowbias = val; |
|---|
| 39 | 40 | } |
|---|
| .. | .. |
|---|
| 71 | 72 | shadow = mat.shadow; |
|---|
| 72 | 73 | texture = mat.texture; |
|---|
| 73 | 74 | opacity = mat.opacity; |
|---|
| 75 | + parallax = mat.parallax; |
|---|
| 74 | 76 | fakedepth = mat.fakedepth; |
|---|
| 75 | 77 | shadowbias = mat.shadowbias; |
|---|
| 76 | 78 | |
|---|
| .. | .. |
|---|
| 105 | 107 | shadow *= Factor(anchor.shadow, current.shadow); |
|---|
| 106 | 108 | texture *= Factor(anchor.texture, current.texture); |
|---|
| 107 | 109 | opacity *= Factor(anchor.opacity, current.opacity); |
|---|
| 110 | +// if (anchor.parallax == 0) |
|---|
| 111 | +// anchor.parallax = 0.001f; |
|---|
| 112 | + //parallax *= Factor(anchor.parallax, current.parallax); |
|---|
| 113 | + parallax = current.parallax; |
|---|
| 108 | 114 | fakedepth *= Factor(anchor.fakedepth, current.fakedepth); |
|---|
| 109 | 115 | shadowbias *= Factor(anchor.shadowbias, current.shadowbias); |
|---|
| 110 | 116 | } |
|---|
| 111 | 117 | |
|---|
| 112 | 118 | float Factor(float anchor, float current) |
|---|
| 113 | 119 | { |
|---|
| 114 | | - if (anchor <= 0) |
|---|
| 115 | | - { |
|---|
| 116 | | - assert anchor > 0; |
|---|
| 117 | | - } |
|---|
| 120 | + Grafreed.Assert(anchor > 0); |
|---|
| 118 | 121 | |
|---|
| 119 | 122 | return current / anchor; |
|---|
| 120 | 123 | } |
|---|
| .. | .. |
|---|
| 364 | 367 | float sheen = 1f, subsurface = 0.001f, bump = 0.75f, aniso = 0.001f, anisoV = 0.001f; |
|---|
| 365 | 368 | float cameralight = 0.3f, diffuseness = 0.001f, shadow = 5f, texture = 1f, opacity = 1; |
|---|
| 366 | 369 | float fakedepth = 0.5f, shadowbias = 0.01f; // 0.001f; |
|---|
| 370 | + |
|---|
| 371 | + float parallax = 0; |
|---|
| 367 | 372 | |
|---|
| 368 | 373 | boolean multiply; |
|---|
| 369 | 374 | |
|---|